.landing{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#fafaf8;position:relative;overflow:hidden}.landing-bg{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.landing-circle{position:absolute;border-radius:50%;opacity:0;transition:opacity 2s ease,transform 20s ease}.loaded .landing-circle{opacity:1}.landing-circle.c1{width:600px;height:600px;background:radial-gradient(circle,rgba(220,218,210,.4) 0%,transparent 70%);top:-200px;right:-100px;animation:float1 30s ease-in-out infinite}.landing-circle.c2{width:400px;height:400px;background:radial-gradient(circle,rgba(200,195,185,.3) 0%,transparent 70%);bottom:-100px;left:-50px;animation:float2 25s ease-in-out infinite}.landing-circle.c3{width:300px;height:300px;background:radial-gradient(circle,rgba(180,175,165,.25) 0%,transparent 70%);top:40%;left:60%;animation:float3 35s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-30px,20px) scale(1.05)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-30px) scale(1.08)}}@keyframes float3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-20px,-20px) scale(.95)}}.landing-content{position:relative;z-index:1;text-align:center;padding:48px 24px;max-width:600px}.landing-header{margin-bottom:64px;opacity:0;transform:translateY(20px);transition:opacity 1s ease .2s,transform 1s ease .2s}.loaded .landing-header{opacity:1;transform:translateY(0)}.landing-title{font-family:var(--font-display);font-weight:300;font-size:clamp(48px,10vw,72px);color:#2a2a28;letter-spacing:-2px;margin-bottom:16px}.landing-subtitle{font-family:var(--font-mono);font-size:14px;color:#888;letter-spacing:2px;text-transform:lowercase}.landing-nav{display:flex;flex-direction:column;gap:16px;margin-bottom:64px;opacity:0;transform:translateY(20px);transition:opacity 1s ease .4s,transform 1s ease .4s}.loaded .landing-nav{opacity:1;transform:translateY(0)}.landing-link{display:flex;flex-direction:column;align-items:flex-start;padding:24px 28px;background:#ffffffb3;border:1px solid rgba(0,0,0,.06);border-radius:16px;text-align:left;transition:all .4s var(--ease-out);position:relative;overflow:hidden}.landing-link:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,transparent 0%,rgba(0,0,0,.02) 100%);opacity:0;transition:opacity .4s ease}.landing-link:hover{transform:translateY(-2px);border-color:#0000001f;box-shadow:0 8px 32px #0000000f}.landing-link:hover:before{opacity:1}.landing-link-label{font-family:var(--font-display);font-weight:500;font-size:20px;color:#2a2a28;margin-bottom:6px}.landing-link-desc{font-size:13px;color:#888;line-height:1.5}.landing-link-arrow{position:absolute;right:24px;top:50%;transform:translateY(-50%) translate(-8px);font-size:20px;color:#aaa;opacity:0;transition:all .4s var(--ease-out)}.landing-link:hover .landing-link-arrow{opacity:1;transform:translateY(-50%) translate(0)}.landing-footer{opacity:0;transform:translateY(20px);transition:opacity 1s ease .6s,transform 1s ease .6s}.loaded .landing-footer{opacity:1;transform:translateY(0)}.landing-footer p{font-size:12px;color:#bbb;letter-spacing:4px;text-transform:lowercase}@media (max-width: 600px){.landing-content{padding:32px 20px}.landing-header,.landing-nav{margin-bottom:48px}}.gallery{min-height:100vh;background:#fafaf8;padding:24px}.gallery-header{display:flex;align-items:center;justify-content:space-between;max-width:1400px;margin:0 auto 40px;padding:0 8px}.gallery-back{display:flex;align-items:center;gap:8px;font-size:14px;color:#888;transition:color .2s ease;opacity:0;transform:translate(-10px);transition:opacity .5s ease .1s,transform .5s ease .1s,color .2s ease}.loaded .gallery-back{opacity:1;transform:translate(0)}.gallery-back:hover{color:#2a2a28}.gallery-title{font-family:var(--font-display);font-weight:400;font-size:24px;color:#2a2a28;letter-spacing:-.5px;opacity:0;transition:opacity .5s ease .2s}.loaded .gallery-title{opacity:1}.gallery-spacer{width:60px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;max-width:1400px;margin:0 auto}.gallery-item{background:#fff;border-radius:16px;overflow:hidden;border:1px solid rgba(0,0,0,.06);transition:all .4s var(--ease-out);opacity:0;transform:translateY(20px)}.loaded .gallery-item{opacity:1;transform:translateY(0);transition-delay:var(--delay)}.gallery-item:hover{transform:translateY(-4px);box-shadow:0 12px 40px #00000014;border-color:#0000001a}.gallery-item-canvas{aspect-ratio:4 / 3;overflow:hidden}.gallery-item-info{padding:20px 24px 24px}.gallery-item-name{font-family:var(--font-display);font-weight:500;font-size:18px;color:#2a2a28;margin-bottom:6px}.gallery-item-desc{font-size:13px;color:#888;line-height:1.5;margin-bottom:12px}.gallery-item-intensity{display:flex;gap:4px}.intensity-dot{width:6px;height:6px;border-radius:50%;background:#0000001a;transition:background .2s ease}.intensity-dot.filled{background:#2a2a28}@media (max-width: 700px){.gallery{padding:16px}.gallery-grid{grid-template-columns:1fr;gap:16px}.gallery-title{font-size:20px}}.generator{height:100vh;width:100vw;position:relative;overflow:hidden;background:#fff}.generator-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.generator-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;opacity:1;transition:opacity .5s ease}.generator-ui.hidden{opacity:0}.generator-ui>*{pointer-events:auto}.generator-header{position:absolute;top:0;left:0;right:0;padding:20px 24px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(to bottom,rgba(255,255,255,.95) 0%,transparent 100%)}.fullscreen .generator-header{background:linear-gradient(to bottom,rgba(0,0,0,.6) 0%,transparent 100%)}.generator-back{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000d;color:#2a2a28;font-size:18px;transition:all .2s ease;opacity:0;transform:translate(-10px)}.loaded .generator-back{opacity:1;transform:translate(0);transition-delay:.1s}.generator-back:hover{background:#0000001a}.fullscreen .generator-back{background:#ffffff1a;color:#fff}.fullscreen .generator-back:hover{background:#fff3}.generator-title{font-family:var(--font-display);font-weight:400;font-size:20px;color:#2a2a28;letter-spacing:-.5px;opacity:0;transition:opacity .5s ease .2s}.loaded .generator-title{opacity:1}.fullscreen .generator-title{color:#fff}.generator-fullscreen{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#0000000d;border:none;color:#2a2a28;transition:all .2s ease;opacity:0;transform:translate(10px)}.loaded .generator-fullscreen{opacity:1;transform:translate(0);transition-delay:.1s}.generator-fullscreen:hover{background:#0000001a}.fullscreen .generator-fullscreen{background:#ffffff1a;color:#fff}.fullscreen .generator-fullscreen:hover{background:#fff3}.generator-sidebar{position:absolute;left:0;top:80px;bottom:60px;width:260px;padding:20px;background:#fffffff2;border-right:1px solid rgba(0,0,0,.06);overflow-y:auto;opacity:0;transform:translate(-20px);transition:opacity .5s ease .3s,transform .5s ease .3s}.loaded .generator-sidebar{opacity:1;transform:translate(0)}.fullscreen .generator-sidebar{background:#000000d9;border-color:#ffffff1a}.generator-section{margin-bottom:28px}.generator-section:last-child{margin-bottom:0}.generator-section-title{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:2px;color:#888;margin-bottom:12px}.fullscreen .generator-section-title{color:#ffffff80}.generator-patterns{display:flex;flex-direction:column;gap:6px}.generator-pattern{padding:10px 14px;background:#00000008;border:1px solid transparent;border-radius:8px;font-family:var(--font-display);font-size:13px;font-weight:500;color:#2a2a28;text-align:left;transition:all .2s ease}.generator-pattern:hover{background:#0000000f}.generator-pattern.active{background:#00000014;border-color:#00000026}.fullscreen .generator-pattern{background:#ffffff0d;color:#fff}.fullscreen .generator-pattern:hover{background:#ffffff1a}.fullscreen .generator-pattern.active{background:#ffffff26;border-color:#fff3}.generator-slider{margin-bottom:16px}.generator-slider:last-of-type{margin-bottom:0}.generator-slider label{display:flex;justify-content:space-between;font-size:12px;color:#666;margin-bottom:8px}.generator-slider label span:last-child{font-weight:700;color:#2a2a28}.fullscreen .generator-slider label{color:#fff9}.fullscreen .generator-slider label span:last-child{color:#fff}.generator-slider input[type=range]{width:100%;height:4px;background:#0000001a;border-radius:2px;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.generator-slider input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;background:#2a2a28;border-radius:50%;cursor:pointer;transition:transform .1s ease}.generator-slider input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.fullscreen .generator-slider input[type=range]{background:#ffffff26}.fullscreen .generator-slider input[type=range]::-webkit-slider-thumb{background:#fff}.generator-palettes{display:flex;flex-wrap:wrap;gap:8px}.generator-palette{width:36px;height:36px;border-radius:8px;border:2px solid transparent;cursor:pointer;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;overflow:hidden;transition:all .2s ease}.generator-palette:hover{transform:scale(1.1)}.generator-palette.active{border-color:#2a2a28}.fullscreen .generator-palette.active{border-color:#fff}.generator-palette span{width:100%;height:100%}.generator-hints{position:absolute;bottom:20px;right:20px;display:flex;gap:16px;font-size:11px;color:#aaa;opacity:0;transition:opacity .5s ease .4s}.loaded .generator-hints{opacity:1}.fullscreen .generator-hints{color:#fff6}.generator-hints kbd{padding:2px 6px;background:#0000000f;border-radius:4px;font-family:inherit;margin-right:4px}.fullscreen .generator-hints kbd{background:#ffffff1a}@media (max-width: 600px){.generator-sidebar{width:100%;top:auto;bottom:0;max-height:50vh;border-right:none;border-top:1px solid rgba(0,0,0,.06);border-radius:20px 20px 0 0}.generator-hints{display:none}}.view{height:100vh;width:100vw;position:relative;overflow:hidden;background:#0a0a0a}.view-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.view-ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10;opacity:1;transition:opacity .5s ease}.view-ui.hidden{opacity:0}.view-ui>*{pointer-events:auto}.view-header{position:absolute;top:0;left:0;right:0;padding:24px 32px;display:flex;align-items:flex-start;justify-content:space-between;background:linear-gradient(to bottom,rgba(0,0,0,.7) 0%,transparent 100%)}.view-back{display:flex;align-items:center;gap:10px;font-size:14px;color:#ffffffb3;transition:color .2s ease}.view-back:hover{color:#fff}.view-info{text-align:center;flex:1;padding:0 20px}.view-title{font-family:var(--font-display);font-weight:500;font-size:24px;color:#fff;letter-spacing:-.5px;margin-bottom:4px}.view-desc{font-size:13px;color:#ffffff80}.view-fullscreen{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#ffffff1a;border:none;color:#fff;transition:all .2s ease}.view-fullscreen:hover{background:#fff3;transform:scale(1.05)}.view-hints{position:absolute;bottom:24px;right:32px;display:flex;gap:20px;font-size:12px;color:#ffffff59}.view-hints kbd{padding:3px 8px;background:#ffffff1a;border-radius:4px;font-family:inherit;margin-right:6px}@media (max-width: 600px){.view-header{padding:20px}.view-back span:last-child{display:none}.view-title{font-size:18px}.view-hints{display:none}}*{margin:0;padding:0;box-sizing:border-box}:root{--font-display: "Syne", sans-serif;--font-mono: "Space Mono", monospace;--color-bg: #fafafa;--color-bg-dark: #0a0a0a;--color-text: #1a1a1a;--color-text-muted: #888;--color-text-light: #fff;--color-border: rgba(0, 0, 0, .08);--color-border-light: rgba(255, 255, 255, .1);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1)}html,body,#root{height:100%}body{font-family:var(--font-mono);background:var(--color-bg);color:var(--color-text);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#00000026;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#00000040}.dark ::-webkit-scrollbar-thumb{background:#ffffff26}.dark ::-webkit-scrollbar-thumb:hover{background:#ffffff40}
