:root{--bg:#0a0a0b;--bg-panel:#0e0e10;--line:#1f1f22;--line-strong:#2c2c30;--fg:#f2f2f0;--fg-dim:#8a8a90;--fg-faint:#55555c;--red:#ff2b2b;--red-dim:#ff2b2b80;--green:#34ff6d;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Inter", -apple-system, "Helvetica Neue", Arial, sans-serif;--cursor:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"5.5\" fill=\"none\" stroke=\"%23ff2b2b\" stroke-width=\"1.6\"/></svg>") 12 12, crosshair}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;cursor:var(--cursor);overflow-x:hidden}::selection{background:var(--red);color:#000}a{color:inherit;text-decoration:none}.grid-canvas{z-index:0;pointer-events:none;position:fixed;inset:0}.frame{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.topbar{z-index:10;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:58px;font-family:var(--mono);letter-spacing:.14em;background:#0a0a0bd1;justify-content:space-between;align-items:center;padding:0 28px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.brand{color:var(--fg);align-items:center;gap:12px;font-weight:600;display:flex}.brand .sq{background:var(--red);width:10px;height:10px;animation:3.2s step-end infinite blink}@keyframes blink{0%,92%{opacity:1}93%,to{opacity:.2}}.nav{gap:34px;display:flex}.nav a{color:var(--fg-dim);transition:color .15s;position:relative}.nav a:hover{color:var(--fg)}.nav a:hover:before{content:"";background:var(--red);width:5px;height:5px;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}.shell{width:min(1180px,100% - 56px);margin:0 auto}section.block{border-top:1px solid var(--line);padding:88px 0 96px;position:relative}.sec-head{font-family:var(--mono);align-items:baseline;gap:18px;margin-bottom:52px;display:flex}.sec-head .idx{color:var(--red);letter-spacing:.12em;font-size:12px}.sec-head h2{letter-spacing:.32em;color:var(--fg);font-size:13px;font-weight:500}.sec-head .rule{background:var(--line);flex:1;align-self:center;height:1px}.sec-head .meta{letter-spacing:.14em;color:var(--fg-faint);font-size:10px}.hero{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:48px;min-height:100vh;padding-top:58px;display:grid}.hero-right{justify-content:center;display:flex}.ptiles{aspect-ratio:1;perspective:1100px;grid-template-rows:repeat(8,1fr);grid-template-columns:repeat(8,1fr);gap:4px;width:min(34vw,420px);display:grid}.ptile{animation:.6s backwards ptile-in;position:relative}@keyframes ptile-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.ptile-flip{transform-style:preserve-3d;transition:transform .55s cubic-bezier(.35,.9,.35,1);position:absolute;inset:0}.ptile.on .ptile-flip{transform:rotateY(180deg)}.ptile-face{backface-visibility:hidden;border:1px solid #18181b;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 1px #ffffff24,inset 1px 0 #ffffff0d,inset 0 -1px #0000008c,inset -1px 0 #0000004d}.ptile-face[data-v="0"]{background:linear-gradient(135deg,#6a6d74,#4b4e54 42%,#63666d 68%,#50535a)}.ptile-face[data-v="1"]{background:linear-gradient(150deg,#64676e,#46494f 45%,#5e6168 72%,#4c4f55)}.ptile-face[data-v="2"]{background:linear-gradient(120deg,#70737a,#4f5258 40%,#686b71 70%,#53565d)}.ptile-face .etch{position:absolute;inset:0}.ptile-face.back{transform:rotateY(180deg)}.hero .tag{font-family:var(--mono);letter-spacing:.34em;color:var(--fg-dim);align-items:center;gap:10px;margin-bottom:26px;font-size:11px;display:flex}.hero .tag .sq{background:var(--red);width:8px;height:8px}.hero h1{letter-spacing:-.03em;font-size:clamp(64px,11vw,132px);font-weight:600;line-height:.94}.hero h1 .last{color:var(--fg-faint)}.hero .sub{font-family:var(--mono);letter-spacing:.16em;color:var(--fg-dim);max-width:560px;margin-top:34px;font-size:13px;line-height:1.8}.hero .sub b{color:var(--fg);font-weight:600}.hero .cta-row{flex-wrap:wrap;gap:14px;margin-top:44px;display:flex}.btn{font-family:var(--mono);letter-spacing:.22em;border:1px solid var(--line-strong);color:var(--fg-dim);cursor:var(--cursor);background:0 0;padding:13px 22px;font-size:11px;transition:all .18s}.btn:hover{border-color:var(--red);color:var(--fg);box-shadow:0 0 24px #ff2b2b2e}.btn.primary{border-color:var(--red);color:var(--fg);background:#ff2b2b14}.btn.primary:hover{background:var(--red);color:#000}.about-grid{grid-template-columns:1.5fr 1fr;gap:64px;display:grid}.about-grid p{color:var(--fg-dim);margin-bottom:1.2em;font-size:17px;line-height:1.75}.about-grid p strong{color:var(--fg);font-weight:500}.statline{border-bottom:1px solid var(--line);font-family:var(--mono);letter-spacing:.1em;justify-content:space-between;padding:13px 2px;font-size:11.5px;display:flex}.statline .k{color:var(--fg-faint)}.statline .v{color:var(--fg);text-align:right}.statline .v.red{color:var(--red)}.type-line{margin-bottom:1.2em;position:relative}.type-line p{margin:0}.type-line .ghost{opacity:0}.type-line .live{position:absolute;inset:0}.caret{background:var(--fg);vertical-align:-.18em;width:.55em;height:1.05em;margin-left:1px;display:inline-block}.caret.blink{animation:1.06s step-end infinite caret-blink}@keyframes caret-blink{50%{opacity:0}}.about-stats{opacity:0;transition:opacity .6s,transform .6s;transform:translateY(8px)}.about-stats.on{opacity:1;transform:none}.xp{border:1px solid var(--line);background:#0e0e108c;grid-template-columns:170px 1fr;gap:36px;margin-bottom:-1px;padding:32px 34px;transition:border-color .2s,background .2s;display:grid;position:relative}.xp:before{content:"";background:0 0;width:2px;transition:background .2s;position:absolute;top:0;bottom:0;left:0}.xp:hover{border-color:var(--line-strong);background:#141417b3}.xp:hover:before{background:var(--red)}.xp .when{font-family:var(--mono);letter-spacing:.12em;color:var(--fg-faint);padding-top:4px;font-size:11px}.xp .when .loc{color:var(--fg-dim);margin-top:8px;display:block}.xp h3{letter-spacing:-.01em;font-size:19px;font-weight:600}.xp .role{font-family:var(--mono);letter-spacing:.18em;color:var(--red);margin-top:6px;font-size:11px}.xp ul{margin-top:18px;list-style:none}.xp li{color:var(--fg-dim);margin-bottom:8px;padding-left:20px;font-size:14.5px;line-height:1.65;position:relative}.xp li:before{content:"▸";color:var(--fg-faint);font-size:11px;position:absolute;top:4px;left:0}.proj-grid{grid-template-columns:repeat(2,1fr);gap:18px;display:grid}.proj{border:1px solid var(--line);background:#0e0e108c;padding:28px;transition:all .2s;position:relative;overflow:hidden}.proj:hover{border-color:var(--red-dim);transform:translateY(-2px);box-shadow:0 8px 36px #00000080}.proj .pid{font-family:var(--mono);letter-spacing:.2em;color:var(--fg-faint);justify-content:space-between;margin-bottom:18px;font-size:10px;display:flex}.proj:hover .pid .n{color:var(--red)}.proj h3{margin-bottom:10px;font-size:17px;font-weight:600}.proj p{color:var(--fg-dim);font-size:13.5px;line-height:1.65}.proj .tags{flex-wrap:wrap;gap:8px;margin-top:20px;display:flex}.proj .tags span{font-family:var(--mono);letter-spacing:.12em;border:1px solid var(--line);color:var(--fg-faint);padding:4px 9px;font-size:9.5px}.misc-strip{border:1px dashed var(--line-strong);font-family:var(--mono);letter-spacing:.1em;color:var(--fg-faint);margin-top:18px;padding:20px 26px;font-size:11px;line-height:2.1}.misc-strip b{color:var(--fg-dim);font-weight:500}.log-row{border-bottom:1px solid var(--line);color:var(--fg-dim);grid-template-columns:130px 1fr 90px;align-items:baseline;gap:28px;padding:20px 4px;transition:all .15s;display:grid}.log-row:hover{color:var(--fg);border-color:var(--red-dim);padding-left:14px}.log-row .d{font-family:var(--mono);letter-spacing:.12em;color:var(--fg-faint);font-size:11px}.log-row .t{font-size:16px;font-weight:500}.log-row .arrow{font-family:var(--mono);text-align:right;color:var(--fg-faint);font-size:11px}.log-row:hover .arrow{color:var(--red)}.write-row{text-align:left;border:none;border-bottom:1px solid var(--line);width:100%;color:var(--fg-dim);cursor:var(--cursor);font-family:var(--sans);background:0 0;grid-template-columns:120px 1fr 120px;align-items:center;gap:28px;padding:26px 4px;transition:all .15s;display:grid}.write-row:hover{color:var(--fg);border-color:var(--red-dim);padding-left:14px}.write-row .meta-col{font-family:var(--mono);letter-spacing:.14em;color:var(--fg-faint);font-size:10px;line-height:1.7}.write-row .meta-col .kind{color:var(--red)}.write-row .body-col h3{letter-spacing:-.01em;margin-bottom:8px;font-size:19px;font-weight:600}.write-row .body-col p{color:var(--fg-dim);max-width:640px;font-size:13.5px;line-height:1.6}.write-row .body-col .venue{font-family:var(--mono);letter-spacing:.1em;color:var(--fg-faint);margin-top:10px;font-size:10px}.write-row .open-col{font-family:var(--mono);letter-spacing:.14em;text-align:right;color:var(--fg-faint);font-size:10px}.write-row:hover .open-col{color:var(--red)}.reader{z-index:50;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080809f5;flex-direction:column;animation:.28s reader-in;display:flex;position:fixed;inset:0}@keyframes reader-in{0%{opacity:0}to{opacity:1}}.reader-bar{border-bottom:1px solid var(--line);height:58px;font-family:var(--mono);background:#0a0a0be6;flex-shrink:0;justify-content:space-between;align-items:center;gap:20px;padding:0 28px;display:flex}.reader-bar .tab{letter-spacing:.14em;color:var(--fg-dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:12px;font-size:11px;display:flex;overflow:hidden}.reader-bar .tab .sq{background:var(--red);flex-shrink:0;width:9px;height:9px}.reader-bar .actions{flex-shrink:0;gap:12px;display:flex}.reader-scroll{flex:1;padding:64px 28px 120px;overflow-y:auto}.reader-scroll .progress{background:var(--red);z-index:51;height:2px;transition:width .1s linear;position:fixed;top:58px;left:0}.doc{width:min(760px,100%);margin:0 auto}.doc .doc-kind{font-family:var(--mono);letter-spacing:.24em;color:var(--red);margin-bottom:18px;font-size:10px}.doc h1{letter-spacing:-.02em;margin-bottom:22px;font-size:clamp(28px,4.2vw,42px);font-weight:600;line-height:1.12}.doc .doc-meta{font-family:var(--mono);letter-spacing:.08em;color:var(--fg-faint);border-bottom:1px solid var(--line);margin-bottom:38px;padding-bottom:26px;font-size:11px;line-height:1.9}.doc h2{font-size:13px;font-family:var(--mono);letter-spacing:.18em;color:var(--fg);text-transform:uppercase;border-bottom:1px solid var(--line);margin:44px 0 18px;padding-bottom:10px;font-weight:500}.doc p{color:#cfcfd2;margin-bottom:1.3em;font-size:16px;line-height:1.85}.doc ul{margin:0 0 1.5em;list-style:none}.doc ul li{color:var(--fg-dim);margin-bottom:12px;padding-left:22px;font-size:15px;line-height:1.7;position:relative}.doc ul li:before{content:"▸";color:var(--red);font-size:11px;position:absolute;top:2px;left:0}.doc blockquote{border-left:2px solid var(--red);color:var(--fg);margin:0 0 1.6em;padding:6px 0 6px 24px;font-size:18px;font-style:italic;line-height:1.7}.doc blockquote .cite{font-family:var(--mono);letter-spacing:.1em;color:var(--fg-faint);margin-top:12px;font-size:11px;font-style:normal;display:block}.doc .fig{font-family:var(--mono);letter-spacing:.06em;color:var(--fg-faint);border:1px dashed var(--line-strong);margin-bottom:1.6em;padding:16px 18px;font-size:11px}.doc table{border-collapse:collapse;width:100%;font-family:var(--mono);margin-bottom:1.8em;font-size:12px}.doc table th,.doc table td{border:1px solid var(--line);text-align:left;letter-spacing:.04em;padding:10px 12px}.doc table th{color:var(--red);letter-spacing:.1em;font-weight:500}.doc table td{color:var(--fg-dim)}.contact-grid{grid-template-columns:1fr 1fr;align-items:start;gap:64px;display:grid}.contact-grid .big{letter-spacing:-.02em;font-size:clamp(30px,4.4vw,50px);font-weight:600;line-height:1.12}.contact-grid .big em{color:var(--red);font-style:normal}.chan{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.12em;color:var(--fg-dim);justify-content:space-between;align-items:center;margin-bottom:-1px;padding:18px 22px;font-size:12px;transition:all .18s;display:flex}.chan:hover{border-color:var(--red);color:var(--fg);background:#ff2b2b0d}.chan .k{color:var(--fg-faint);font-size:10px}.xmit{border:1px solid var(--line-strong);transform-origin:50%;background:#0e0e10b3;flex-direction:column;gap:18px;margin-top:28px;padding:26px;transition:transform .6s cubic-bezier(.6,-.2,.7,.2),opacity .55s;display:flex}.xmit.sent{opacity:0;pointer-events:none;transform:scale(.04)rotate(45deg)}.xmit-head{font-family:var(--mono);letter-spacing:.26em;color:var(--fg-dim);border-bottom:1px solid var(--line);padding-bottom:14px;font-size:11px}.xmit label{flex-direction:column;gap:7px;display:flex}.xmit label span{font-family:var(--mono);letter-spacing:.2em;color:var(--fg-faint);font-size:9.5px}.xmit input,.xmit textarea{border:1px solid var(--line);color:var(--fg);font-family:var(--mono);letter-spacing:.06em;resize:vertical;background:0 0;outline:none;padding:11px 13px;font-size:12px;transition:border-color .15s}.xmit input::placeholder,.xmit textarea::placeholder{color:var(--fg-faint)}.xmit input:focus,.xmit textarea:focus{border-color:var(--red)}.xmit-logged{font-family:var(--mono);letter-spacing:.18em;color:#ba6cff;border:1px dashed #ba6cff;flex-direction:column;gap:18px;margin-top:28px;padding:26px;font-size:11px;display:flex}.hud{z-index:10;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:44px;font-family:var(--mono);letter-spacing:.16em;color:var(--fg-faint);background:#0a0a0bd1;justify-content:space-between;align-items:center;padding:0 28px;font-size:10.5px;display:flex;position:fixed;bottom:0;left:0;right:0}.hud .grp{gap:28px;display:flex}.hud .live{color:var(--fg-dim);align-items:center;gap:8px;display:flex}.hud .live .dot{background:var(--red);border-radius:50%;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #ff2b2b80}50%{opacity:.55;box-shadow:0 0 0 5px #ff2b2b00}}.endcap{text-align:center;font-family:var(--mono);letter-spacing:.3em;color:var(--fg-faint);border-top:1px solid var(--line);padding:70px 0 110px;font-size:10px}.endcap button.pp-link{font:inherit;color:var(--fg-faint);letter-spacing:inherit;cursor:var(--cursor);text-underline-offset:3px;background:0 0;border:none;margin-left:.8em;padding:0;text-decoration:underline}.endcap button.pp-link:hover{color:var(--fg-dim)}.pp-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:900;background:#0a0a0bd1;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pp-panel{background:var(--bg-panel);border:1px solid var(--line-strong);width:100%;max-width:600px;max-height:80vh;font-family:var(--mono);color:var(--fg-dim);letter-spacing:.04em;padding:36px 40px;font-size:11px;line-height:1.85;overflow-y:auto}.pp-panel h2{font-family:var(--mono);letter-spacing:.3em;color:var(--fg);margin-bottom:24px;font-size:11px}.pp-panel h3{letter-spacing:.2em;color:var(--fg);margin:20px 0 6px;font-size:10px}.pp-panel p{margin-bottom:10px}.pp-panel a{color:var(--red);text-decoration:none}.pp-panel a:hover{text-decoration:underline}.pp-close{border:1px solid var(--line-strong);color:var(--fg-dim);font-family:var(--mono);letter-spacing:.25em;cursor:var(--cursor);background:0 0;margin:28px auto 0;padding:8px 28px;font-size:10px;display:block}.pp-close:hover{border-color:var(--fg-dim);color:var(--fg)}@media (width<=980px){.hero{grid-template-columns:1fr}.hero-right{display:none}}@media (width<=860px){.nav{display:none}.about-grid,.contact-grid{grid-template-columns:1fr;gap:40px}.proj-grid{grid-template-columns:1fr}.xp{grid-template-columns:1fr;gap:14px;padding:24px}.log-row{grid-template-columns:1fr;gap:6px}.log-row .arrow,.hud .grp.right-extra{display:none}}
