:root{--ink: #10262d;--muted: #566e75;--blue: #225f9e;--blue-dark: #174a7d;--paper: rgba(247, 252, 251, .9)}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}body{min-width:320px;background:#bcdce8;color:var(--ink);font-family:DM Sans,system-ui,sans-serif}button,a{font:inherit}.canvas-container{position:relative;width:100vw;height:100dvh;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 73% 18%,rgba(255,255,255,.8),transparent 23%),linear-gradient(154deg,#d9edf3,#b9dce8 42%,#8fbdca)}.canvas-container:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;pointer-events:none;background:linear-gradient(90deg,rgba(18,50,59,.16),transparent 31%,transparent 80%,rgba(18,50,59,.05));mix-blend-mode:multiply}.canvas-container canvas{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%!important;height:100%!important;touch-action:none}.aurora{position:absolute;z-index:0;border-radius:999px;filter:blur(58px);opacity:.42;pointer-events:none;animation:float 14s ease-in-out infinite alternate}.aurora-one{width:38vw;height:18vw;top:-5vw;right:10vw;background:#ecf9d4;transform:rotate(-12deg)}.aurora-two{width:32vw;height:14vw;top:20%;right:-8vw;background:#b7e6e4;animation-delay:-6s}@keyframes float{to{transform:translate3d(-4vw,3vh,0) rotate(-4deg)}}.portfolio-card{position:fixed;top:clamp(18px,3.2vw,48px);left:clamp(18px,3.2vw,48px);z-index:10;width:min(420px,calc(100vw - 36px));color:var(--ink);transition:transform .42s cubic-bezier(.2,.8,.2,1)}.card-content{padding:clamp(24px,3vw,34px);overflow:hidden;border:1px solid rgba(255,255,255,.78);border-radius:26px;background:var(--paper);box-shadow:0 24px 70px #183c4633,inset 0 1px #fff;backdrop-filter:blur(22px) saturate(1.15);-webkit-backdrop-filter:blur(22px) saturate(1.15);transition:opacity .22s ease,transform .42s cubic-bezier(.2,.8,.2,1)}.portfolio-card.is-closed{transform:translate(calc(-100% + 54px))}.portfolio-card.is-closed .card-content{opacity:0;transform:scale(.96);pointer-events:none}.panel-toggle{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(16,38,45,.08);border-radius:50%;color:var(--ink);background:#fff9;cursor:pointer;transition:background .18s,transform .18s}.panel-toggle:hover{background:#fff;transform:rotate(6deg)}.portfolio-card.is-closed .panel-toggle{right:-46px;color:#fff;background:var(--ink);border-color:#ffffff40}.panel-toggle span{line-height:1;font-size:20px;font-weight:700}.portfolio-card.is-closed .panel-toggle span{font-size:12px;letter-spacing:-.04em}.availability{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;padding:7px 11px;border:1px solid rgba(45,119,89,.15);border-radius:99px;color:#2d7658;background:#d8f1e09e;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.availability span{width:7px;height:7px;border-radius:50%;background:#46a776;box-shadow:0 0 0 4px #46a77621;animation:pulse 2.4s ease-out infinite}@keyframes pulse{70%{box-shadow:0 0 0 8px #46a77600}}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.card-content h1{margin:0;font-family:Manrope,system-ui,sans-serif;font-size:clamp(48px,5.2vw,68px);font-weight:800;letter-spacing:-.075em;line-height:.85}.card-content h1 span{color:var(--blue)}.intro{margin:25px 0 27px;color:var(--muted);font-size:14px;line-height:1.65}.intro strong{color:var(--ink);font-weight:600}.experience{margin:-2px 0 24px}.experience-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:9px}.experience-heading h2{margin:0;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.experience-heading>span{color:#7a8b8f;font-size:9px;letter-spacing:.04em}.experience-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.experience-grid a{position:relative;min-width:0;display:flex;align-items:center;gap:9px;padding:10px;border:1px solid rgba(16,38,45,.09);border-radius:13px;color:var(--ink);background:#ffffff8a;text-decoration:none;transition:transform .18s ease,background .18s ease,border-color .18s ease}.experience-grid a:hover{transform:translateY(-2px);border-color:#225f9e33;background:#ffffffe6}.experience-grid img{width:34px;height:34px;flex:0 0 34px;border-radius:9px;object-fit:cover}.experience-copy{min-width:0;display:flex;flex-direction:column;gap:2px}.experience-copy strong{overflow:hidden;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.experience-copy small{overflow:hidden;color:#72858a;font-size:8.5px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.experience-link{position:absolute;top:7px;right:8px;color:#87969a;font-size:9px}.card-actions{display:flex;align-items:center;gap:9px}.card-actions a{display:inline-flex;align-items:center;justify-content:center;height:47px;text-decoration:none;transition:transform .18s ease,background .18s ease,box-shadow .18s ease}.card-actions a:hover{transform:translateY(-2px)}.primary-action{flex:1;gap:9px;padding:0 17px;border-radius:14px;color:#fff;background:var(--blue-dark);box-shadow:0 10px 24px #174a7d33;font-size:13px;font-weight:600}.primary-action:hover{background:#103d69;box-shadow:0 13px 28px #174a7d47}.primary-action span{margin-left:auto;font-size:16px;opacity:.8}.icon-action{width:47px;flex:0 0 47px;border:1px solid rgba(16,38,45,.1);border-radius:14px;color:var(--ink);background:#ffffffa6;font-size:18px}.icon-action:hover{background:#fff}.controls-note{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(16,38,45,.09)}.controls-icon{width:34px;height:34px;display:grid;place-items:center;flex:0 0 34px;border-radius:10px;color:var(--blue);background:#225f9e14}.controls-note strong{display:block;margin-bottom:3px;font-size:12px}.controls-note p{margin:0;color:#72858a;font-size:10px}kbd{display:inline-block;min-width:17px;margin-right:2px;padding:1px 4px;border:1px solid rgba(16,38,45,.12);border-radius:4px;background:#fff;color:var(--ink);font:600 9px DM Sans,sans-serif;text-align:center;box-shadow:0 1px 1px #10262d0f}.scene-label{position:fixed;right:clamp(18px,3.2vw,48px);bottom:clamp(18px,3.2vw,40px);z-index:5;display:flex;flex-direction:column;align-items:flex-end;color:#10262dbf;pointer-events:none}.scene-label span{font-family:Manrope,sans-serif;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.scene-label small{margin-top:3px;font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:.65}.joystick-container{position:fixed;left:24px;bottom:24px;z-index:20;width:108px;height:108px;border-radius:50%;touch-action:none;-webkit-user-select:none;user-select:none}.joystick-base{position:relative;width:108px;height:108px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.7);border-radius:50%;background:#10262d59;box-shadow:0 12px 30px #10262d33,inset 0 0 0 8px #ffffff14;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);touch-action:none}.joystick-knob{position:absolute;width:42px;height:42px;border-radius:50%;background:#ffffffeb;box-shadow:0 4px 14px #10262d40;pointer-events:none;transition:transform .08s ease-out}@media (max-width: 700px){.portfolio-card{top:14px;left:14px;width:min(360px,calc(100vw - 28px))}.card-content{padding:22px;border-radius:22px}.availability{margin-bottom:20px}.card-content h1{font-size:49px}.intro{margin:20px 0;font-size:13px}.experience{margin-bottom:19px}.experience-heading>span{display:none}.controls-note{display:none}.scene-label{right:14px;bottom:16px}.scene-label small{display:none}}@media (max-height: 690px) and (min-width: 701px){.portfolio-card{top:18px;left:18px}.card-content{padding:22px 26px}.availability{margin-bottom:16px}.card-content h1{font-size:48px}.intro{margin:17px 0}.experience{margin-bottom:17px}.experience-grid a{padding:8px}.experience-grid img{width:30px;height:30px;flex-basis:30px}.controls-note{margin-top:18px;padding-top:15px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
