.hero{flex:0 0 auto;display:flex;align-items:center;width:38%;min-width:300px;height:100vh;padding-right:4vw}.hero-inner{display:flex;flex-direction:column;gap:0}.hero-line{width:40px;height:2px;background:var(--text-primary);margin-bottom:28px}.hero-name{font-family:Cormorant Garamond,serif;font-weight:300;font-size:clamp(3rem,5.5vw,5.2rem);line-height:1.05;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:28px}.hero-desc{font-family:DM Mono,monospace;font-weight:300;font-size:clamp(.74rem,1vw,.9rem);line-height:1.65;color:var(--text-secondary);letter-spacing:.01em;max-width:none;white-space:nowrap;margin-bottom:8px}.hero-school{display:block;margin-bottom:34px;font-family:DM Mono,monospace;font-weight:400;color:var(--text-primary);letter-spacing:.04em;text-transform:uppercase;font-size:clamp(.62rem,.85vw,.72rem)}.hero-tags{display:flex;flex-wrap:wrap;gap:8px}.hero-tag{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--divider);padding:5px 11px;border-radius:2px}@media (max-width: 768px){.hero{width:100%;min-width:0;height:auto;padding-right:0;align-items:flex-start}.hero-name{font-size:clamp(2.35rem,12vw,3.3rem);margin-bottom:18px}.hero-desc{max-width:42ch;white-space:normal;margin-bottom:8px}.hero-school{margin-bottom:24px}}.project-card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:4px;padding:32px 30px 26px;box-shadow:0 4px 24px var(--card-shadow);transition:box-shadow .35s ease,border-color .35s ease;width:100%;cursor:default}.project-card--active{box-shadow:0 8px 48px var(--card-shadow-hover);border-color:#c8c4be}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:18px}.card-category{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.card-year{font-family:DM Mono,monospace;font-size:.62rem;letter-spacing:.08em;color:var(--text-muted)}.card-title{font-family:Cormorant Garamond,serif;font-weight:400;font-size:1.65rem;line-height:1.2;color:var(--text-primary);margin-bottom:16px;letter-spacing:-.01em}.card-divider{width:28px;height:1px;background:var(--divider);margin-bottom:16px}.card-desc{font-family:DM Mono,monospace;font-size:.7rem;font-weight:300;line-height:1.8;color:var(--text-secondary);margin-bottom:22px}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:24px}.card-tag{font-family:DM Mono,monospace;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--card-border);padding:3px 9px;border-radius:2px;background:var(--bg)}.card-footer{border-top:1px solid var(--card-border);padding-top:16px}.card-cta{font-family:DM Mono,monospace;font-size:.65rem;letter-spacing:.1em;color:var(--text-primary);text-transform:uppercase;opacity:0;transition:opacity .25s ease}.project-card--active .card-cta{opacity:1}.wheel-outer{flex:1 1 auto;display:flex;align-items:center;justify-content:center;height:100vh;position:relative;overflow:hidden}.wheel-stage{position:relative;width:100%;max-width:420px;height:520px;display:block;animation:wheelStageEnter .75s cubic-bezier(.22,1,.36,1) both}.wheel-stage:before{content:none;position:absolute;width:410px;height:410px;border:1px solid rgba(30,30,30,.08);border-radius:50%;pointer-events:none;z-index:0;animation:wheelOrbit 18s linear infinite}.wheel-viewport{height:100%;overflow:hidden;position:relative;z-index:2}.wheel-container{display:flex;flex-direction:column;height:100%}.wheel-slide{flex:0 0 100%;min-height:0;width:100%;display:flex;align-items:center;justify-content:center;opacity:.5;transform:scale(.9);transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s ease}.wheel-slide.is-selected{opacity:1;transform:scale(1)}.wheel-card-shell{width:100%;transform-origin:center center}.wheel-hint{position:absolute;right:18px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;opacity:.3;-webkit-user-select:none;user-select:none}.wheel-hint-arrow{font-size:.7rem;color:var(--text-primary)}.wheel-hint-label{font-family:DM Mono,monospace;font-size:.55rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-primary);writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg)}.wheel-dots{position:absolute;left:50%;bottom:28px;transform:translate(-50%);display:flex;gap:7px;align-items:center;z-index:3}.wheel-dot{width:5px;height:5px;border-radius:50%;background:var(--divider);border:none;cursor:pointer;padding:0;transition:background .25s ease,transform .25s ease}.wheel-dot.active{background:var(--text-primary);transform:scale(1.4)}@keyframes wheelStageEnter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes wheelOrbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.wheel-stage{animation:none}.wheel-slide{transition:none}.wheel-stage:before{animation:none}}@media (max-width: 768px){.wheel-outer{width:100%;height:auto;overflow:visible}.wheel-stage{width:100%;max-width:350px;height:440px;margin:0 auto}.wheel-stage:before{width:320px;height:320px}.wheel-hint{display:none}.wheel-dots{bottom:8px}}.app-layout{display:flex;align-items:center;justify-content:center;height:100vh;width:100vw;overflow:hidden;padding:0 4vw 0 8vw;gap:0}@media (max-width: 1024px){.app-layout{padding:0 3vw 0 5vw}}@media (max-width: 768px){.app-layout{flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:100dvh;height:auto;width:100%;overflow-x:hidden;overflow-y:auto;padding:18px 16px 28px;gap:22px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f5f3ef;--text-primary: #0f0f0f;--text-secondary: #4a4a4a;--text-muted: #888;--accent: #0f0f0f;--card-bg: #ffffff;--card-border: #e0ddd8;--card-shadow: rgba(0, 0, 0, .08);--card-shadow-hover: rgba(0, 0, 0, .14);--divider: #d4d0ca}html,body,#root{height:100%;width:100%;overflow:hidden}body{background-color:var(--bg);color:var(--text-primary);font-family:DM Mono,monospace;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{scrollbar-width:none;-ms-overflow-style:none}*::-webkit-scrollbar{display:none}@media (max-width: 768px){html,body,#root{min-height:100dvh;height:auto;overflow-x:hidden;overflow-y:auto}}
