:root{--paper: #f5f4ef;--dot: #d3d0c4;--card: #ffffff;--line: #e5e2d8;--text: #1c1c1f;--muted: #67676e;--faint: #9b9ba3;--accent: #5b5bf7;--accent-soft: rgba(91, 91, 247, .1);--ink: #3d3d45;--success: #34c759;--danger: #e5484d;--shadow: 0 1px 2px rgba(20, 20, 30, .06), 0 8px 24px -8px rgba(20, 20, 30, .12);--shadow-lift: 0 2px 4px rgba(20, 20, 30, .08), 0 24px 48px -12px rgba(20, 20, 30, .28);--chrome: rgba(255, 255, 255, .86);--s-yellow: #ffe68a;--s-pink: #ffcadb;--s-green: #c9efc0;--s-blue: #c6dffd;--s-purple: #e3d3ff;--sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;--serif: "Instrument Serif", Georgia, serif;--label: "Karla", "Plus Jakarta Sans", system-ui, sans-serif;--hand: "Caveat", "Segoe Print", cursive}:root[data-theme=dark]{--paper: #121214;--dot: #2b2b31;--card: #1b1b1f;--line: #2c2c33;--text: #ececf0;--muted: #a0a0aa;--faint: #6c6c76;--accent: #8b8bff;--accent-soft: rgba(139, 139, 255, .14);--ink: #b9b9c6;--chrome: rgba(27, 27, 31, .86);--shadow: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -8px rgba(0, 0, 0, .6);--shadow-lift: 0 2px 4px rgba(0, 0, 0, .5), 0 24px 48px -12px rgba(0, 0, 0, .8)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--paper);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;overflow:hidden}a{color:inherit}button{font:inherit;color:inherit}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .15s,background .2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--text);color:var(--paper);border-color:var(--text)}.btn:disabled{opacity:.6;cursor:default;transform:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.board{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;background-image:radial-gradient(var(--dot) 1.2px,transparent 1.3px);background-size:24px 24px}.board.grabbing{cursor:grabbing}.world{position:absolute;left:0;top:0;transform-origin:0 0;will-change:transform}.zone,.wins-grid{display:contents}.item{position:absolute;transform:rotate(var(--r, 0deg));transition:box-shadow .2s,transform .2s}.locked{cursor:default}.item.carried{box-shadow:var(--shadow-lift);transform:rotate(var(--r, 0deg)) scale(1.03);z-index:5;transition:left .9s cubic-bezier(.3,.7,.3,1),top .9s cubic-bezier(.3,.7,.3,1),transform .2s,box-shadow .2s}.item.shake{animation:shake .42s ease}@keyframes shake{20%{translate:-7px 0}40%{translate:6px 0}60%{translate:-4px 0}80%{translate:2px 0}}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:24px}.zone-label{font:700 44px/1 var(--hand);color:var(--ink);white-space:nowrap;pointer-events:none}.zone-label small{display:block;font:500 13px var(--label);color:var(--faint);margin-top:6px;letter-spacing:.02em}.note{position:absolute;font:600 24px/1.1 var(--hand);color:var(--accent);white-space:nowrap;pointer-events:none}.arrows,.ink{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.arrows path{fill:none;stroke:var(--accent);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;opacity:.75}.ink{z-index:50}.ink path{fill:none;stroke:var(--accent);stroke-width:2.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:ink-draw 1s ease forwards;transition:opacity .6s}.ink path.fading{opacity:0}@keyframes ink-draw{to{stroke-dashoffset:0}}.ap-select{position:absolute;border:1.5px solid var(--accent);border-radius:8px;pointer-events:none;opacity:0;transition:opacity .25s;z-index:50}.ap-select.on{opacity:1}.ap-select:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:var(--accent-soft)}.ap-select:after{content:attr(data-label);position:absolute;left:-1.5px;top:-21px;background:var(--accent);color:#fff;font:600 11px var(--sans);padding:2px 7px;border-radius:5px 5px 5px 0;white-space:nowrap}.intro h1{font:700 48px/1.02 var(--display);letter-spacing:-.04em;margin:14px 0;font-variation-settings:"opsz" 96}.intro h1 span{color:var(--accent);font:italic 400 1.12em/1 var(--serif);letter-spacing:-.01em}.intro p{color:var(--muted);font-size:16px;line-height:1.6}.intro p b{color:var(--text);font-weight:550}.status{display:inline-flex;align-items:center;gap:8px;font:12.5px var(--label);color:var(--muted);padding:5px 11px;border-radius:99px;background:var(--accent-soft)}.status:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 3px #34c75933}.status.typing .status-text:after{content:"";display:inline-block;width:1.5px;height:1.05em;background:var(--accent);margin-left:2px;vertical-align:-2px;animation:caret 1s steps(1) infinite}@keyframes caret{50%{opacity:0}}.hello-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.hello-tags span{font-size:13px;padding:5px 11px;border-radius:8px;border:1px solid var(--line);color:var(--muted)}.intro-actions{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}.xp .company{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.xp h3{font:700 26px/1.1 var(--display);letter-spacing:-.03em}.xp .when{font:12.5px var(--label);color:var(--faint);white-space:nowrap}.xp .role{color:var(--muted);font-size:14.5px;margin:2px 0 16px}.xp ul{list-style:none;display:grid;gap:12px}.xp li{font-size:14.5px;line-height:1.55;color:var(--muted);padding-left:16px;position:relative}.xp li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.6}.xp li b{color:var(--text);font-weight:550}.metric-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.metric-row div{padding:12px;border-radius:10px;background:var(--accent-soft)}.metric-row b{display:block;font:700 22px/1.2 var(--display);letter-spacing:-.03em}.metric-row span{font-size:12.5px;color:var(--muted)}.project{padding:0;overflow:hidden;display:flex;flex-direction:column}.project .art{height:120px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}.project .art svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.project .art .kind{position:absolute;left:14px;bottom:10px;font:11.5px var(--label);padding:3px 8px;border-radius:6px;background:var(--card);color:var(--muted);border:1px solid var(--line)}.project .body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}.project h3{font:700 25px/1.1 var(--display);letter-spacing:-.035em}.project p{color:var(--muted);font-size:14px;line-height:1.55;margin:6px 0 14px;flex:1}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips span{font:11.5px var(--label);padding:3px 8px;border-radius:6px;background:var(--paper);color:var(--muted);border:1px solid var(--line)}.links{display:flex;gap:14px;margin-top:14px;font:500 13px var(--label)}.links a{color:var(--accent);text-decoration:none}.links a:hover{text-decoration:underline}.sticky{width:200px;min-height:176px;padding:18px 16px 14px;border-radius:3px 3px 18px;box-shadow:var(--shadow);color:#26262b;display:flex;flex-direction:column}.sticky .place{font:700 30px/1 var(--hand)}.sticky .what{font:600 22px/1.15 var(--hand);margin-top:8px;flex:1}.sticky .where{font:11px var(--label);opacity:.6;margin-top:10px}.sticky:before{content:"";position:absolute;top:-9px;left:50%;width:64px;height:20px;transform:translate(-50%) rotate(-2deg);background:#ffffff8c;border:1px solid rgba(0,0,0,.05)}:root[data-theme=dark] .sticky:before{background:#ffffff2e}.yellow{background:var(--s-yellow)}.pink{background:var(--s-pink)}.green{background:var(--s-green)}.blue{background:var(--s-blue)}.purple{background:var(--s-purple)}.stack h4{font:500 12px var(--label);color:var(--faint);text-transform:uppercase;letter-spacing:.07em;margin:0 0 10px}.stack>div+div>h4{margin-top:18px}.stack .tags{display:flex;flex-wrap:wrap;gap:7px}.stack .tags span{display:inline-flex;align-items:center;gap:7px;font-size:14px;padding:6px 11px;border-radius:9px;border:1px solid var(--line);background:var(--paper)}.tech-icon{height:16px;width:auto;flex:none}:root[data-theme=dark] .tech-icon.mono{filter:invert(1) brightness(1.6)}.edu .big{font:800 52px/1 var(--display);letter-spacing:-.05em}.edu .big small{font:italic 400 20px var(--serif);color:var(--muted);letter-spacing:0}.edu p{color:var(--muted);font-size:14px;margin-top:10px;line-height:1.5}.card h5{font:500 12px var(--label);color:var(--faint);text-transform:uppercase;letter-spacing:.07em;margin-bottom:12px}.certs{list-style:none;display:grid;gap:10px}.certs li{font-size:14px;display:flex;justify-content:space-between;gap:10px}.certs li span{color:var(--faint);font:12px var(--label);white-space:nowrap}.postcard{display:grid;grid-template-columns:1fr 1px 1fr;gap:22px;padding:26px}.postcard:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:2px dashed var(--line);border-radius:12px;pointer-events:none}.postcard .msg{font:600 28px/1.2 var(--hand);color:var(--ink)}.postcard .msg small{display:block;font:13px var(--sans);color:var(--muted);margin-top:12px;line-height:1.5}.postcard .divider{background:var(--line)}.postcard .addr{display:flex;flex-direction:column;gap:10px;position:relative;padding-top:74px}.stamp{position:absolute;right:0;top:0;width:64px;height:74px;border:2px dotted var(--accent);border-radius:4px;display:grid;place-items:center;font:700 26px var(--hand);color:var(--accent);transform:rotate(4deg);background:var(--accent-soft)}.stamp.photo{padding:4px;background:#fff;overflow:hidden}.stamp.photo img{width:100%;height:100%;object-fit:cover;border-radius:2px;display:block}.addr a,.addr button{display:block;text-align:left;font:14px var(--label);padding-bottom:6px;border:0;border-bottom:1px solid var(--line);background:none;text-decoration:none;cursor:pointer}.addr a:hover,.addr button:hover{color:var(--accent)}.chrome{position:fixed;z-index:20;background:var(--chrome);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;touch-action:none}.file{top:14px;left:14px;display:flex;align-items:center;gap:10px;padding:8px 14px 8px 10px;font-size:13.5px}.file .logo{width:26px;height:26px;border-radius:7px;background:var(--accent);display:grid;place-items:center}.file b{font:700 15px var(--display);letter-spacing:-.02em}.file span{color:var(--faint)}.presence{top:14px;right:14px;display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px}.presence .btn{padding:7px 12px;font-size:13px}.avatars{display:flex;padding-left:6px}.av{position:relative;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font:600 11px var(--sans);color:#fff;background:var(--c);border:2px solid var(--card);margin-left:-6px;padding:0;cursor:default;transition:transform .15s,box-shadow .25s}button.av{cursor:pointer}button.av:hover{transform:translateY(-1px)}.av .online{position:absolute;right:-2px;bottom:-2px;width:10px;height:10px;border-radius:50%;background:var(--success);border:2px solid var(--card)}.av.active,.av.following{box-shadow:0 0 0 2px var(--card),0 0 0 4px var(--c)}.av[data-tip]:hover:after{content:attr(data-tip);position:absolute;top:38px;right:-8px;white-space:nowrap;background:var(--text);color:var(--paper);font:500 12px var(--sans);padding:6px 9px;border-radius:7px;pointer-events:none;z-index:40}.role-pill{display:inline-flex;align-items:center;gap:6px;font:500 12.5px var(--sans);color:var(--muted);padding:6px 10px;border-radius:8px;background:var(--paper);border:1px solid var(--line);white-space:nowrap}.role-pill svg{width:14px;height:14px}.request-btn.requested{background:var(--accent-soft);color:var(--accent);border-color:transparent}.toolbar{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));transform:translate(-50%);display:flex;align-items:center;gap:2px;padding:5px;max-width:calc(100vw - 24px);overflow-x:auto;scrollbar-width:none;touch-action:pan-x}.toolbar::-webkit-scrollbar{display:none}.tb{border:0;background:none;padding:8px 11px;border-radius:8px;font-size:13px;cursor:pointer;white-space:nowrap;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.tb:hover{background:var(--accent-soft);color:var(--text)}.tb.on{background:var(--accent);color:#fff}.tb.view-toggle{color:var(--accent);font-weight:600}.tb svg{width:16px;height:16px}.sep{width:1px;height:22px;background:var(--line);margin:0 4px;flex:none}.zoom-label{font:12px var(--label);min-width:46px;text-align:center;color:var(--muted)}.minimap{right:14px;bottom:calc(16px + env(safe-area-inset-bottom));padding:6px;cursor:pointer}.minimap canvas{display:block;width:180px;height:116px;border-radius:7px}.hint{position:fixed;left:18px;top:66px;z-index:20;font:12px var(--label);color:var(--faint);pointer-events:none}.toast{position:fixed;top:70px;left:50%;transform:translate(-50%,-8px);z-index:30;padding:9px 15px;border-radius:10px;background:var(--text);color:var(--paper);font:13px var(--label);opacity:0;transition:all .25s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%)}.snack{position:fixed;left:50%;bottom:calc(76px + env(safe-area-inset-bottom));transform:translate(-50%,10px);z-index:40;display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:12px;background:var(--text);color:var(--paper);font-size:13.5px;box-shadow:var(--shadow-lift);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;width:max-content;max-width:calc(100vw - 24px)}.snack.on{opacity:1;transform:translate(-50%);pointer-events:auto}.snack .btn{padding:6px 12px;font-size:13px;background:var(--accent);border-color:var(--accent);color:#fff;white-space:nowrap}.follow-frame{position:fixed;top:0;right:0;bottom:0;left:0;z-index:14;pointer-events:none;border:3px solid var(--accent);opacity:0;transition:opacity .25s}.following .follow-frame{opacity:1}.follow-bar{position:fixed;top:0;left:50%;transform:translate(-50%);z-index:25;display:flex;align-items:center;gap:8px;padding:5px 6px 6px 12px;background:var(--accent);color:#fff;font:600 12.5px var(--sans);border-radius:0 0 10px 10px;white-space:nowrap}.follow-bar button{border:0;background:#ffffff38;color:#fff;font:600 12px var(--sans);padding:4px 10px;border-radius:6px;cursor:pointer}@media (max-width: 760px){.file span,.file b,.role-pill,.presence .resume-btn,.minimap,.hint{display:none}.file{padding:6px 12px 6px 6px}}.guide{position:fixed;left:0;top:0;z-index:15;pointer-events:none;will-change:transform;transition:opacity .3s}.guide.hidden{opacity:0}.guide svg{width:22px;height:22px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.25))}.guide .tag{position:absolute;left:18px;top:18px;background:var(--accent);color:#fff;font:600 12px var(--sans);padding:3px 9px;border-radius:0 9px 9px;white-space:nowrap}.guide .tag em{font-style:normal;font-weight:500;opacity:.85}.guide .chat{position:absolute;left:18px;top:44px;width:max-content;max-width:250px;background:var(--accent);color:#fff;padding:8px 12px;border-radius:4px 12px 12px;font-size:13px;line-height:1.45;box-shadow:var(--shadow-lift);opacity:0;transform:translateY(4px) scale(.96);transform-origin:0 0;transition:opacity .25s,transform .25s}.guide .chat.on{opacity:1;transform:none}.guide .bubble{position:absolute;left:18px;top:44px;width:280px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow-lift);border-radius:4px 14px 14px;padding:14px 16px;font-size:14px;line-height:1.5;pointer-events:auto}.guide .bubble .row{display:flex;gap:8px;margin-top:12px;align-items:center}.guide .bubble .row .btn{padding:7px 12px;font-size:13px}.guide .bubble .count{margin-left:auto;font:11px var(--label);color:var(--faint)}@media (max-width: 760px){.guide .bubble{width:240px}}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#0a0a0f73;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:16px}.modal{width:min(420px,100%);background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lift);padding:22px;animation:pop .18s ease}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(6px)}}.modal-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}.modal-head .thumb{width:40px;height:40px;border-radius:10px;background:var(--accent);display:grid;place-items:center;flex:none}.modal h2{font:700 20px/1.2 var(--display);letter-spacing:-.02em}.modal-head p{font-size:13px;color:var(--muted);margin-top:2px}.modal .x{margin-left:auto;border:0;background:none;font-size:22px;line-height:1;color:var(--faint);cursor:pointer;padding:2px 4px}.modal label{display:block;font:600 13px var(--sans);margin:14px 0 6px}.modal label span{font-weight:400;color:var(--faint)}.modal input,.modal textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:var(--paper);color:var(--text);font:14px var(--sans);outline:none;resize:vertical}.modal input:focus,.modal textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.modal .counter{font:11.5px var(--label);color:var(--faint);text-align:right;margin-top:4px}.modal .err{color:var(--danger);font-size:13px;margin-top:8px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.req-done{text-align:center;padding:8px 4px 2px}.req-done .check{width:52px;height:52px;border-radius:50%;background:var(--success);color:#fff;display:grid;place-items:center;font-size:26px;margin:0 auto 14px;animation:pop .3s ease}.req-done p{color:var(--muted);font-size:14px;margin:8px 0 18px;line-height:1.5}.page-view body{overflow:auto}.page-view .board{position:static;overflow:visible;cursor:auto;touch-action:auto;user-select:text;-webkit-user-select:text;background-attachment:fixed;padding:90px 16px 120px}.page-view .world{position:static;transform:none!important;max-width:760px;margin:0 auto}.page-view .zone{display:block;margin-bottom:56px}.page-view .item{position:static;transform:none;width:auto!important;margin-bottom:16px}.page-view .zone-label{display:block;margin-bottom:20px}.page-view .wins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px}.page-view .wins-grid .item{margin:0}.page-view .sticky{width:auto}.page-view .postcard{grid-template-columns:1fr}.page-view .postcard .divider{display:none}.page-view .locked{cursor:auto}.page-view .follow-frame,.page-view .snack,.page-view .ink,.page-view .ap-select,.page-view .arrows,.page-view .note,.page-view .minimap,.page-view .guide,.page-view .hint{display:none!important}
