*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0a;--surface: #141414;--surface-hover: #1a1a1a;--border: #222;--text: #e8e8e8;--text-muted: #888;--accent: #fff}html{scroll-behavior:smooth;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica Neue,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:var(--text);text-decoration:none}.container{max-width:960px;margin:0 auto;padding:0 24px}.site-header{padding:48px 0 0}.site-header nav{display:flex;justify-content:space-between;align-items:center}.logo{font-size:1.1rem;font-weight:600;letter-spacing:-.02em}.nav-links{display:flex;gap:32px;list-style:none}.nav-links a{color:var(--text-muted);font-size:.9rem;transition:color .2s}.nav-links a:hover{color:var(--text)}.hero{padding:120px 0 80px}.hero h1{font-size:3.2rem;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:20px}.hero p{font-size:1.2rem;color:var(--text-muted);max-width:540px;line-height:1.7}section{padding:64px 0}.section-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:32px}.project-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.project-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;transition:background .2s,border-color .2s;display:flex;flex-direction:column}.project-card:hover{background:var(--surface-hover);border-color:#333}.project-card h3{font-size:1.15rem;font-weight:600;margin-bottom:8px;letter-spacing:-.01em}.project-card h3 a{color:inherit;text-decoration:none}.project-card h3 a:hover{text-decoration:underline}.project-card p{font-size:.92rem;color:var(--text-muted);line-height:1.6;flex-grow:1}.project-tags{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}.tag{font-size:.75rem;color:var(--text-muted);background:#ffffff0f;padding:4px 10px;border-radius:100px}.project-status{display:inline-block;font-size:.75rem;color:var(--text-muted);border:1px solid var(--border);padding:4px 10px;border-radius:100px;margin-top:16px;align-self:flex-start}.project-screenshot{width:100%;aspect-ratio:16 / 10;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.8rem;overflow:hidden}.project-screenshot img{width:100%;height:100%;object-fit:cover}.experiments-intro{color:var(--text-muted);font-size:.95rem;margin-bottom:24px}.experiment-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}.experiment-item{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--surface);transition:background .2s;text-decoration:none}.experiment-item:hover{background:var(--surface-hover)}.experiment-name{font-weight:600;font-size:.95rem;white-space:nowrap}.experiment-desc{color:var(--text-muted);font-size:.88rem;flex-grow:1}.experiment-arrow{color:var(--text-muted);font-size:1.1rem;transition:transform .2s}.experiment-item:hover .experiment-arrow{transform:translate(3px)}.about-content{max-width:600px}.about-content p{color:var(--text-muted);margin-bottom:16px;font-size:1rem;line-height:1.7}.contact-content p{color:var(--text-muted);font-size:1rem;margin-bottom:8px}.contact-content a{color:var(--text);border-bottom:1px solid var(--border);transition:border-color .2s}.contact-content a:hover{border-color:var(--text)}.site-footer{padding:48px 0;border-top:1px solid var(--border);margin-top:32px}.footer-content{display:flex;justify-content:space-between;align-items:center}.footer-content p{color:var(--text-muted);font-size:.85rem}.footer-links{display:flex;gap:24px;list-style:none}.footer-links a{color:var(--text-muted);font-size:.85rem;transition:color .2s}.footer-links a:hover{color:var(--text)}.post-list{display:flex;flex-direction:column;gap:1px;background:var(--border);border:1px solid var(--border);border-radius:12px;overflow:hidden}.post-item{display:flex;align-items:center;gap:16px;padding:20px 24px;background:var(--surface);transition:background .2s;text-decoration:none}.post-item:hover{background:var(--surface-hover)}.post-title{font-weight:600;font-size:.95rem;white-space:nowrap}.post-description{color:var(--text-muted);font-size:.88rem;flex-grow:1}.post-date{color:var(--text-muted);font-size:.8rem;white-space:nowrap}.post-arrow{color:var(--text-muted);font-size:1.1rem;transition:transform .2s}.post-item:hover .post-arrow{transform:translate(3px)}.post-header{padding:120px 0 40px}.post-header h1{font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:12px}.post-meta{color:var(--text-muted);font-size:.9rem}.post-content{max-width:680px;padding-bottom:64px}.post-content h2{font-size:1.5rem;font-weight:600;margin-top:40px;margin-bottom:16px;letter-spacing:-.02em}.post-content h3{font-size:1.2rem;font-weight:600;margin-top:32px;margin-bottom:12px}.post-content p{color:var(--text-muted);font-size:1rem;line-height:1.7;margin-bottom:16px}.post-content a{color:var(--text);border-bottom:1px solid var(--border);transition:border-color .2s}.post-content a:hover{border-color:var(--text)}.post-content code{background:var(--surface);padding:2px 6px;border-radius:4px;font-size:.9em}.post-content pre{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:20px;overflow-x:auto;margin-bottom:16px}.post-content pre code{background:none;padding:0}.post-content ul,.post-content ol{color:var(--text-muted);margin-bottom:16px;padding-left:24px}.post-content li{margin-bottom:4px;line-height:1.7}.post-content blockquote{border-left:2px solid var(--border);padding-left:16px;margin-bottom:16px;color:var(--text-muted);font-style:italic}.post-content img{max-width:100%;border-radius:8px;margin-bottom:16px}.product-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.product-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:28px;transition:background .2s,border-color .2s;display:flex;flex-direction:column;text-decoration:none}.product-card:hover{background:var(--surface-hover);border-color:#333}.product-image{width:100%;aspect-ratio:16 / 10;background:var(--bg);border:1px solid var(--border);border-radius:8px;margin-bottom:16px;overflow:hidden}.product-image img{width:100%;height:100%;object-fit:cover}.product-card h3{font-size:1.15rem;font-weight:600;margin-bottom:8px;letter-spacing:-.01em}.product-card .product-description{font-size:.92rem;color:var(--text-muted);line-height:1.6;flex-grow:1}.product-price{font-size:1.1rem;font-weight:600;margin-top:16px}.product-category{font-size:.75rem;color:var(--text-muted);background:#ffffff0f;padding:4px 10px;border-radius:100px;align-self:flex-start;margin-top:12px}.product-detail{padding-bottom:64px}.product-detail h1{font-size:2.4rem;font-weight:700;letter-spacing:-.03em;line-height:1.1;margin-bottom:12px}.product-detail .product-meta{display:flex;align-items:center;gap:16px;margin-bottom:32px}.product-detail .product-price{font-size:1.4rem}.product-detail .product-content{max-width:680px}.product-detail .product-content p{color:var(--text-muted);font-size:1rem;line-height:1.7;margin-bottom:16px}.buy-button{display:inline-block;background:var(--accent);color:var(--bg);font-size:1rem;font-weight:600;padding:12px 32px;border-radius:8px;transition:opacity .2s;text-decoration:none}.buy-button:hover{opacity:.9;color:var(--bg)}.empty-state{text-align:center;padding:80px 0;color:var(--text-muted)}.empty-state p{font-size:1rem}@media(max-width:640px){.site-header{padding:32px 0 0}.site-header nav{flex-direction:column;align-items:flex-start;gap:16px}.nav-links{gap:8px 20px;flex-wrap:wrap}.hero{padding:80px 0 48px}.hero h1{font-size:2.2rem}.project-grid,.product-grid{grid-template-columns:1fr}.experiment-item{padding:16px;gap:12px}.experiment-name{white-space:normal}.post-item{padding:16px;gap:12px}.post-title{white-space:normal}.footer-content{flex-direction:column;gap:16px;text-align:center}.post-header h1,.product-detail h1{font-size:1.8rem}}.drift-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.drift-container{width:100%;max-width:440px}.drift-auth-card,.drift-downloads{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:40px;text-align:center}.drift-auth-card h1,.drift-downloads h1{font-size:1.6rem;font-weight:600;margin-bottom:8px;letter-spacing:-.02em}.drift-auth-card>p,.drift-subtitle{color:var(--text-muted);font-size:.95rem;margin-bottom:28px}.drift-auth-card form{display:flex;flex-direction:column;gap:12px}.drift-auth-card input{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:12px 16px;color:var(--text);font-size:1rem;outline:none;transition:border-color .2s;width:100%}.drift-auth-card input:focus{border-color:var(--text-muted)}.drift-auth-card button[type=submit]{background:var(--accent);color:var(--bg);border:none;border-radius:8px;padding:12px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s;width:100%}.drift-auth-card button[type=submit]:hover{opacity:.9}.drift-auth-card button[type=submit]:disabled{opacity:.6;cursor:not-allowed}.drift-error{color:#ff6b6b;font-size:.9rem;margin-top:12px}.drift-builds-list{display:flex;flex-direction:column;gap:12px;margin-top:24px}.drift-build-card{display:flex;flex-direction:column;gap:4px;background:var(--bg);border:1px solid var(--border);border-radius:12px;padding:20px;text-decoration:none;transition:border-color .2s,background .2s;text-align:left;cursor:pointer;width:100%;font-family:inherit;color:inherit}.drift-build-card:hover:not(:disabled){border-color:var(--text-muted);background:#ffffff05}.drift-build-card:disabled{opacity:.7;cursor:default}.drift-platform{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted)}.drift-filename{font-weight:600;font-size:1rem;color:var(--text)}.drift-meta{font-size:.85rem;color:var(--text-muted)}.drift-empty{color:var(--text-muted);font-size:.95rem}.drift-logout{margin-top:24px;background:transparent;border:1px solid var(--border);color:var(--text-muted);padding:8px 16px;border-radius:8px;font-size:.85rem;cursor:pointer;transition:color .2s,border-color .2s}.drift-logout:hover{color:var(--text);border-color:var(--text-muted)}.placeholder-shell{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;background:#050505}.placeholder-shell:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:44px 44px;mask-image:radial-gradient(circle at center,black 0%,transparent 72%);pointer-events:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shore-radio{position:fixed;top:14px;left:14px;z-index:50}.shore-radio__art-button{display:block;width:112px;padding:0;border:0;background:transparent;cursor:pointer;transition:filter .18s ease,scale .18s ease,width .24s ease}.shore-radio--open .shore-radio__art-button{width:126px}.shore-radio__art-button:hover,.shore-radio__art-button:focus-visible{filter:brightness(1.12) saturate(1.08);outline:none;scale:1.025}.shore-radio__art-button:focus-visible{filter:brightness(1.12) saturate(1.08) drop-shadow(0 0 7px rgba(151,180,255,.65))}.shore-radio__art{display:block;width:100%;height:auto;image-rendering:pixelated;filter:drop-shadow(0 8px 18px rgba(0,0,0,.56))}.shore-radio__player{position:absolute;top:50%;left:140px;display:flex;width:min(430px,calc(100vw - 174px));height:48px;align-items:center;gap:10px;padding:7px 9px;border:1px solid rgba(255,255,255,.14);border-radius:4px;background:#050507d6;box-shadow:0 12px 36px #00000080;backdrop-filter:blur(10px);opacity:0;pointer-events:none;transform:translate(-10px,-50%);transition:opacity .26s ease,transform .32s cubic-bezier(.22,1,.36,1)}.shore-radio--open .shore-radio__player{opacity:1;pointer-events:auto;transform:translateY(-50%)}.shore-radio__control{display:grid;flex:0 0 30px;width:30px;height:30px;padding:0;place-items:center;border:1px solid rgba(255,255,255,.16);border-radius:50%;background:#ffffff09;color:#ffffffd1;cursor:pointer;transition:color .16s ease,border-color .16s ease,background .16s ease}.shore-radio__control:hover,.shore-radio__control:focus-visible{border-color:#ffffff80;background:#ffffff17;color:#fff;outline:none}.shore-radio__play span{width:0;height:0;margin-left:2px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:8px solid currentColor}.shore-radio__play--playing span{width:9px;height:11px;margin-left:0;border-top:0;border-right:3px solid currentColor;border-bottom:0;border-left:3px solid currentColor}.shore-radio__identity{display:flex;min-width:106px;flex:1 1 auto;flex-direction:column;overflow:hidden;line-height:1.1}.shore-radio__identity strong,.shore-radio__identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shore-radio__identity strong{color:#ffffffe6;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.shore-radio__identity span{margin-top:3px;color:#67c995;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:8px;letter-spacing:.12em;text-transform:uppercase}.shore-radio__identity .shore-radio__status--error{color:#e47777}.shore-radio__volume{display:flex;flex:0 1 90px;align-items:center}.shore-radio__volume input{width:100%;height:14px;margin:0;appearance:none;background:transparent;cursor:pointer}.shore-radio__volume input::-webkit-slider-runnable-track{height:2px;border-radius:999px;background:#ffffff4d}.shore-radio__volume input::-webkit-slider-thumb{width:10px;height:10px;margin-top:-4px;appearance:none;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#0a0a0d}.shore-radio__volume input::-moz-range-track{height:2px;border:0;border-radius:999px;background:#ffffff4d}.shore-radio__volume input::-moz-range-thumb{width:10px;height:10px;border:1px solid rgba(255,255,255,.72);border-radius:50%;background:#0a0a0d}.shore-radio__close{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:20px;font-weight:300;line-height:1}.placeholder-title{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ascii-stage{position:relative;width:min(92vw,1080px);height:clamp(220px,36vw,420px);z-index:1}.project-links{position:absolute;top:50%;left:50%;z-index:2;display:grid;grid-template-columns:repeat(2,auto);align-items:center;justify-items:center;gap:clamp(40px,4vw,58px);transform:translate(-50%)}.project-links--top{margin-top:clamp(-380px,-26vw,-330px)}.project-links--bottom{margin-top:clamp(64px,5vw,74px)}.eyes-link{display:block;flex:0 0 auto;width:clamp(164px,13vw,196px);aspect-ratio:1;border-radius:50%;transition:filter .18s ease}.eyes-link__eyeball{display:block;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 54%,#02070d 0 11%,#0c5d8f 12% 24%,#072d51 25% 31%,transparent 32%),radial-gradient(circle at 65% 25%,#fff 0 8%,#c5bdba 50%,#54515a);box-shadow:0 16px 48px #00000085;animation:watch-eye 2.4s ease-in-out infinite;transition:box-shadow .18s ease,scale .18s ease}.eyes-link:hover,.eyes-link:focus-visible{filter:saturate(1.2) brightness(1.08);outline:none}.eyes-link:hover .eyes-link__eyeball,.eyes-link:focus-visible .eyes-link__eyeball{scale:1.1;box-shadow:0 18px 54px #0009,0 0 0 2px #d8eef4b8,0 0 28px #b7e4f266}.project-model-link{position:relative;display:block;width:clamp(280px,22vw,332px);height:clamp(232px,18vw,272px);border-radius:18px;background:radial-gradient(ellipse at center,rgba(76,102,170,.12),transparent 66%);transition:filter .18s ease,scale .18s ease}.project-model-link--myroneman{width:clamp(336px,27vw,392px);height:clamp(248px,20vw,292px)}.project-model-link--buddha{width:clamp(236px,18vw,284px);height:clamp(240px,19vw,280px)}.project-model-link:before{content:"";position:absolute;inset:24% 22%;border-radius:50%;background:#8099e133;filter:blur(14px);animation:model-loading-pulse 1.6s ease-in-out infinite;transition:opacity .48s ease-out}.project-model-link--ready{opacity:1}.project-model-link--ready:before,.project-model-link--failed:before{opacity:0;animation:none}.project-model-link:hover,.project-model-link:focus-visible{filter:saturate(1.16) brightness(1.12);outline:none;scale:1.08}.project-model-link:focus-visible{box-shadow:0 0 0 2px #d8eef4b8,0 0 28px #7892ff6b}.project-model{position:relative;z-index:1;display:block;width:100%;height:100%;opacity:0;scale:.97;filter:blur(5px) drop-shadow(0 10px 16px rgba(39,54,124,.32));transition:opacity 1.25s cubic-bezier(.4,0,.2,1),filter 1.25s cubic-bezier(.4,0,.2,1),scale 1.25s cubic-bezier(.4,0,.2,1)}.project-model-link--ready .project-model{opacity:1;scale:1;filter:blur(0) drop-shadow(0 10px 16px rgba(39,54,124,.42))}.contact-link{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:50%;z-index:3;color:#ffffff6b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:11px;line-height:1;letter-spacing:.08em;text-decoration:none;transform:translate(-50%);transition:color .18s ease,text-shadow .18s ease}.contact-link:hover,.contact-link:focus-visible{color:#ffffffeb;text-shadow:0 0 14px rgba(146,174,255,.48)}.contact-link:focus-visible{outline:1px solid rgba(216,238,244,.72);outline-offset:5px}@keyframes model-loading-pulse{50%{opacity:.4;scale:.82}}@keyframes watch-eye{0%,to{transform:translateY(-2px) rotate(-5deg)}50%{transform:translateY(3px) rotate(7deg)}}@media(max-width:640px){.shore-radio{top:8px;left:8px}.shore-radio__art-button{width:86px}.shore-radio--open .shore-radio__art-button{width:94px}.shore-radio__player{left:102px;width:calc(100vw - 118px);height:44px;gap:6px;padding:6px 7px}.shore-radio__control{flex-basis:28px;width:28px;height:28px}.shore-radio__identity{min-width:72px}.shore-radio__identity strong{font-size:9px;letter-spacing:.06em}.shore-radio__identity span{font-size:7px;letter-spacing:.08em}.shore-radio__volume{min-width:42px;flex-basis:62px}.ascii-stage{width:92vw;height:min(80svh,520px)}.eyes-link{width:158px}.project-links{grid-template-columns:repeat(2,178px);gap:24px;width:380px}.project-links--top{margin-top:-290px}.project-links--bottom{margin-top:120px}.project-model-link,.project-model-link--myroneman,.project-model-link--buddha{width:178px;height:160px}}@media(prefers-reduced-motion:reduce){.shore-radio__art-button,.shore-radio__player{transition:none}.eyes-link__eyeball,.project-model-link:before{animation:none}.project-model{scale:1;transition:none}}
