:root{--ink:#101214;--paper:#f2f1ed;--line:rgba(16,18,20,.18);--blue:#15475d;--pad:clamp(20px,4vw,64px);--background:#fff;--foreground:#101214;--card:#fff;--card-foreground:#101214;--popover:#fff;--popover-foreground:#101214;--primary:#15475d;--primary-foreground:#fff;--secondary:#e1e5e6;--secondary-foreground:#101214;--muted:#e8ebec;--muted-foreground:#5e676d;--accent:#d9e5e8;--accent-foreground:#101214;--destructive:#b42318;--border:#cbd1d3;--input:#cbd1d3;--ring:#15475d}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.4}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}img{display:block;max-width:100%}::selection{background:var(--blue);color:var(--paper)}::-moz-selection{background:var(--blue);color:var(--paper)}
.site-nav{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:22px var(--pad);mix-blend-mode:difference;color:white}.brand{font-weight:800;letter-spacing:.3em;font-size:.88rem}.site-nav nav{display:flex;gap:28px;font-size:.73rem;letter-spacing:.18em;text-transform:uppercase}.site-nav a{transition:opacity .2s}.site-nav a:hover{opacity:.55}
.hero{min-height:100svh;padding:130px var(--pad) 50px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(290px,.75fr);gap:5vw;align-items:end;border-bottom:1px solid var(--line);overflow:hidden}.eyebrow{display:flex;align-items:center;gap:12px;font-size:.73rem;letter-spacing:.2em;text-transform:uppercase}.dot{width:9px;height:9px;background:var(--blue);border-radius:50%}.hero h1{margin:.22em 0 .1em;font-size:clamp(4.3rem,12.5vw,12rem);line-height:.78;letter-spacing:-.085em;font-weight:800}.hero h1 span{display:block;color:var(--blue)}.hero-copy{max-width:540px;font-size:clamp(1.1rem,1.8vw,1.6rem);margin:38px 0 0}.hero-side{align-self:center;position:relative}.hero-watch{height:min(73vh,760px);width:100%;object-fit:contain;filter:drop-shadow(0 32px 40px rgba(0,0,0,.18));animation:float 7s ease-in-out infinite}.orbit{position:absolute;inset:8% -18%;border:1px solid var(--line);border-radius:50%;transform:rotate(-18deg);pointer-events:none}.side-caption{position:absolute;right:0;bottom:0;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;writing-mode:vertical-rl}@keyframes float{50%{transform:translateY(-16px) rotate(1.2deg)}}
.intro{padding:100px var(--pad) 44px;display:grid;grid-template-columns:1fr 2fr;gap:4vw}.section-no{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase}.intro h2{font-size:clamp(2.2rem,5vw,5.3rem);line-height:.98;letter-spacing:-.055em;margin:0;max-width:1000px}.intro h2 em{font-style:normal;color:var(--blue)}.work{padding:50px var(--pad) 120px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:42px}.filter{border:1px solid var(--ink);background:transparent;padding:10px 16px;border-radius:100px;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;cursor:pointer}.filter.active,.filter:hover{background:var(--ink);color:var(--paper)}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:18px;container-type:inline-size}.project-card{grid-column:span 4;border-top:1px solid var(--ink);padding-top:13px;position:relative;opacity:0;transform:translateY(44px);transition:opacity .75s cubic-bezier(.2,.7,.2,1),transform .75s cubic-bezier(.2,.7,.2,1)}.project-card.is-visible{opacity:1;transform:translateY(0)}.project-card.wide{grid-column:span 8}.visual,.wide .visual{background:#e7e6e1;aspect-ratio:auto;height:calc(41.6667cqw - 15px);overflow:hidden;position:relative}.visual img{width:100%;height:100%;object-fit:contain;padding:5%;transition:transform .65s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 20px 18px rgba(0,0,0,.12))}.project-card:hover img{transform:scale(1.045)}.meta{display:flex;justify-content:space-between;gap:20px;padding:16px 2px 36px}.meta h3{font-size:1.05rem;margin:0;letter-spacing:-.02em}.meta>p{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;margin:3px 0 0;color:#606367;text-align:right}.meta .desc{max-width:36rem;margin:.45rem 0 0;color:#5d6062;font-size:.86rem}.index{position:absolute;top:17px;left:16px;z-index:2;font-size:.65rem;letter-spacing:.12em}
.about{background:var(--ink);color:var(--paper);padding:100px var(--pad);display:grid;grid-template-columns:1fr 2fr;gap:4vw}.about h2{margin:0;font-size:clamp(2.7rem,6vw,6.6rem);line-height:.9;letter-spacing:-.06em}.about-copy{max-width:750px}.about-copy>p{font-size:clamp(1.15rem,2vw,1.65rem);margin:0 0 38px}.services{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #4b4d4e}.services div{padding:17px 0;border-bottom:1px solid #4b4d4e;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase}.services div:nth-child(even){text-align:right}.contact{min-height:75svh;padding:90px var(--pad) 45px;display:flex;flex-direction:column;justify-content:space-between}.contact h2{font-size:clamp(3.6rem,10vw,10rem);line-height:.82;letter-spacing:-.075em;margin:0}.contact h2 span{color:var(--blue)}.mail{display:inline-block;border-bottom:2px solid;margin-top:40px;font-size:clamp(1.1rem,2vw,1.7rem)}footer{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding-top:20px;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase}
.admin-shell{min-height:100vh;background:#eef0f1;color:#151719;padding:24px}.admin-wrap{max-width:1180px;margin:auto}.admin-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px}.admin-header h1{font-size:clamp(2rem,5vw,4rem);letter-spacing:-.055em;margin:0}.admin-kicker{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#667078}.admin-actions{display:flex;gap:10px;align-items:center}.admin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.admin-card{background:white;border:1px solid #d9dddf;border-radius:18px;overflow:hidden}.admin-card img{width:100%;height:220px;object-fit:contain;background:#e8e9e9;padding:14px}.admin-card-body{padding:18px}.admin-card h2{font-size:1.1rem;margin:0 0 4px}.admin-card-meta{color:#697177;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}.admin-card-controls{display:flex;gap:8px;margin-top:17px}.status-pill{display:inline-flex;align-items:center;border-radius:99px;padding:5px 9px;background:#edf4db;color:#41511b;font-size:.7rem;margin-top:10px}.status-pill.draft{background:#eee;color:#666}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-row{display:flex;flex-direction:column;gap:6px}.form-row.full{grid-column:1/-1}.form-row label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#586066}.form-row input,.form-row textarea,.form-row select{border:1px solid #cfd3d5;border-radius:10px;background:white;padding:11px 12px}.form-row textarea{min-height:90px;resize:vertical}.checks{display:flex;gap:24px;align-items:center}.admin-empty{border:1px dashed #b9bec1;border-radius:18px;padding:80px 20px;text-align:center;color:#6b7175}.denied{min-height:100vh;display:grid;place-items:center;text-align:center;padding:30px}.denied h1{font-size:3rem;margin:0}.denied p{color:#666}
@media(max-width:850px){.site-nav nav{gap:13px}.hero{grid-template-columns:1fr;padding-top:115px}.hero-side{height:48vh}.hero-watch{height:100%;margin:auto}.hero h1{font-size:clamp(4rem,21vw,8rem)}.intro,.about{grid-template-columns:1fr;gap:24px}.project-card,.project-card.wide{grid-column:span 6}.visual,.wide .visual{height:calc(62.5cqw - 11.25px)}.orbit{inset:0 8%}.side-caption{right:8%}.admin-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.site-nav nav a:not(:last-child){display:none}.hero{padding-bottom:24px}.hero-copy{font-size:1rem;margin-top:24px}.grid{gap:8px}.project-card,.project-card.wide{grid-column:span 12}.visual,.wide .visual{height:auto;aspect-ratio:4/5}.meta{padding-bottom:26px}.about,.intro,.work,.contact{padding-left:20px;padding-right:20px}.about{padding-top:70px;padding-bottom:70px}.services{grid-template-columns:1fr}.services div:nth-child(even){text-align:left}footer{flex-direction:column}.filter{padding:9px 12px}.admin-header{flex-direction:column}.admin-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-row.full{grid-column:auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-watch{animation:none}.visual img{transition:none}.project-card{opacity:1;transform:none;transition:none}}
.hero-manager{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:center;background:#fff;border:1px solid #d9dddf;border-radius:18px;padding:22px;margin-bottom:24px}.hero-manager h2{font-size:1.45rem;margin:4px 0}.hero-manager p:not(.admin-kicker){color:#657078;max-width:620px;margin:0 0 16px}.hero-manager>img{width:100%;height:170px;object-fit:contain;background:#e8e9e9;border-radius:12px;padding:10px}.admin-message{background:#dce8eb;color:#153f50;border-radius:10px;padding:11px 14px;margin:-8px 0 20px}@media(max-width:650px){.hero-manager{grid-template-columns:1fr}.hero-manager>img{order:-1}}

/* Admin UI: explicit opaque surfaces and high-contrast controls. */
[data-slot="sheet-content"],[data-slot="alert-dialog-content"],[data-slot="select-content"]{background:#fff!important;color:#101214!important;opacity:1!important;border-color:#c7ced1!important}
[data-slot="sheet-overlay"],[data-slot="alert-dialog-overlay"]{background:rgba(0,0,0,.58)!important}
.admin-card,.hero-manager{background:#fff!important;opacity:1!important}
.admin-reorder-help{display:flex;align-items:center;gap:7px;color:#59666c;font-size:.86rem;margin:0 0 13px}.admin-reorder-help svg{width:17px}.admin-card-sortable{position:relative;cursor:grab;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.admin-card-sortable:active{cursor:grabbing}.admin-card-sortable.is-dragging{opacity:.48!important;transform:scale(.98)}.admin-card-sortable.is-drag-over{border-color:#15475d!important;box-shadow:0 0 0 3px rgba(21,71,93,.18);transform:translateY(-3px)}.admin-drag-handle{position:absolute;z-index:2;top:10px;right:10px;width:34px;height:34px;display:grid;place-items:center;border-radius:99px;background:#fff;color:#15475d;border:1px solid #c5d0d4;box-shadow:0 3px 12px rgba(0,0,0,.12);pointer-events:none}.admin-drag-handle svg{width:18px}.image-dropzone{min-height:128px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:2px dashed #aebbc0;border-radius:14px;background:#f4f7f8;color:#153f50;text-align:center;padding:22px;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.image-dropzone:hover,.image-dropzone.is-active{background:#dce8eb;border-color:#15475d;transform:translateY(-2px)}.image-dropzone svg{width:25px;height:25px;margin-bottom:3px}.image-dropzone strong{font-size:.92rem}.image-dropzone span{font-size:.78rem;color:#657078}
.admin-shell [data-slot="button"],[data-slot="sheet-content"] [data-slot="button"]{background:#15475d!important;color:#fff!important;border:1px solid #15475d!important;opacity:1!important}
.admin-shell [data-slot="button"][data-variant="outline"],.admin-shell [data-slot="button"][data-variant="ghost"],[data-slot="sheet-content"] [data-slot="button"][data-variant="outline"],[data-slot="sheet-content"] [data-slot="button"][data-variant="ghost"]{background:#fff!important;color:#15475d!important;border-color:#15475d!important}
.visual img{position:absolute;inset:0;opacity:0;transition:opacity 1s ease,transform .65s cubic-bezier(.2,.7,.2,1)}.visual img.is-active{opacity:1}.gallery-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:4px}.gallery-admin-item{position:relative;border:1px solid #d4dade;border-radius:12px;overflow:hidden;background:#eceeee;padding-bottom:30px}.gallery-admin-item img{width:100%;height:120px;object-fit:contain;padding:8px}.gallery-admin-item-actions{position:absolute;right:7px;top:7px;display:flex;gap:5px}.gallery-admin-item .gallery-admin-item-actions button{width:30px;height:30px;border:1px solid #9ca9af;border-radius:99px;background:#fff;color:#15475d;display:grid;place-items:center;cursor:pointer}.gallery-admin-item .gallery-admin-item-actions button:last-child{color:#7c2424}.gallery-admin-item button svg{width:15px}.gallery-file-name{position:absolute;left:8px;right:8px;bottom:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;color:#536168}.stored-file-row{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #cfd7da;border-radius:10px;background:#f4f7f8;padding:8px 10px}.stored-file-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:#536168}.gallery-help{margin:2px 0 0;color:#657078;font-size:.8rem;line-height:1.45}.gallery-help.form-row{background:#edf2f3;border-radius:10px;padding:12px}@media(max-width:560px){.gallery-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
[data-slot="alert-dialog-content"] [data-slot="button"]{background:#15475d!important;color:#fff!important;border:1px solid #15475d!important;opacity:1!important}
[data-slot="alert-dialog-content"] [data-slot="button"][data-variant="outline"]{background:#fff!important;color:#15475d!important}
[data-slot="alert-dialog-content"] [data-slot="button"][data-variant="destructive"]{background:#b42318!important;color:#fff!important;border-color:#b42318!important}
[data-slot="input"],[data-slot="textarea"],[data-slot="select-trigger"],.form-row input,.form-row textarea,.form-row select{background:#fff!important;color:#101214!important;border-color:#9eaaaf!important;opacity:1!important}
[data-slot="checkbox"]{background:#fff!important;color:#fff!important;border:1px solid #15475d!important;opacity:1!important}
[data-slot="checkbox"][data-state="checked"]{background:#15475d!important}

/* Hero carousel: mechanical iris reveal with twelve dial markers. */
.hero-watch-stage{position:relative;height:min(73vh,760px);width:100%;animation:float 7s ease-in-out infinite}
.hero-watch-stage .hero-watch{position:absolute;inset:0;height:100%;width:100%;object-fit:contain;opacity:0;transform:scale(.94) rotate(-1deg);transition:opacity .45s ease,transform 1.15s cubic-bezier(.2,.75,.2,1);animation:none;pointer-events:none}
.hero-watch-stage .hero-watch.is-active{z-index:2;opacity:1;transform:scale(1) rotate(0);animation:heroIrisReveal 1.25s cubic-bezier(.65,0,.15,1) both}
.hero-iris{position:absolute;z-index:3;inset:10%;border-radius:50%;pointer-events:none;background:repeating-conic-gradient(from -1deg,var(--blue) 0 1.6deg,transparent 1.6deg 30deg);-webkit-mask:radial-gradient(circle,transparent 0 60%,#000 61% 63%,transparent 64%);mask:radial-gradient(circle,transparent 0 60%,#000 61% 63%,transparent 64%);animation:heroIrisDial 1.25s cubic-bezier(.65,0,.15,1) both}
@keyframes heroIrisReveal{0%{clip-path:circle(0 at 50% 50%);filter:drop-shadow(0 32px 40px rgba(0,0,0,.18)) blur(3px)}62%{clip-path:circle(68% at 50% 50%)}100%{clip-path:circle(145% at 50% 50%);filter:drop-shadow(0 32px 40px rgba(0,0,0,.18)) blur(0)}}
@keyframes heroIrisDial{0%{opacity:0;transform:scale(.08) rotate(-22deg)}22%{opacity:.8}66%{opacity:.65;transform:scale(.95) rotate(0)}100%{opacity:0;transform:scale(1.25) rotate(6deg)}}
@media(max-width:850px){.hero-watch-stage{height:100%;margin:auto}}
@media(prefers-reduced-motion:reduce){.hero-watch-stage,.hero-watch-stage .hero-watch.is-active,.hero-iris{animation:none}.hero-iris{display:none}}
.image-preview-dialog{display:flex!important;flex-direction:column!important;width:min(94vw,1100px)!important;max-width:1100px!important;max-height:94vh!important;background:#fff!important;color:#101214!important;opacity:1!important}.image-preview-dialog>[data-slot="dialog-header"]{width:100%!important;flex:none!important}.image-preview-dialog [data-slot="dialog-title"],.image-preview-dialog [data-slot="dialog-description"]{white-space:normal!important;overflow-wrap:anywhere!important}.image-preview-canvas{display:grid!important;place-items:center!important;width:100%!important;height:min(70vh,760px)!important;min-height:0!important;max-height:70vh!important;overflow:hidden!important;border-radius:12px;background:#e8e9e9}.image-preview-canvas img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:contain!important}.image-preview-dialog>[data-slot="button"]{align-self:flex-end!important;flex:none!important}@media(max-width:560px){.image-preview-dialog{width:calc(100vw - 20px)!important;padding:16px!important}.image-preview-canvas{height:65vh!important}}
.hero-manager-actions{display:flex;gap:8px;flex-wrap:wrap}.hero-manager-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.hero-manager-thumb{position:relative;min-height:112px;border:1px solid #d2d9dc;border-radius:12px;overflow:hidden;background:#e8e9e9}.hero-manager-thumb img{width:100%;height:112px;object-fit:contain;padding:8px}.hero-manager-thumb>span{position:absolute;left:7px;bottom:7px;border-radius:99px;background:#fff;color:#15475d;padding:3px 7px;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.hero-manager-thumb>div{position:absolute;right:6px;top:6px;display:flex;gap:4px}.hero-manager-thumb button{width:29px;height:29px;border:1px solid #9ca9af;border-radius:99px;background:#fff;color:#15475d;display:grid;place-items:center;cursor:pointer}.hero-manager-thumb button:last-child{color:#7c2424}.hero-manager-thumb svg{width:14px}.hero-manager>img{display:none}@media(max-width:650px){.hero-manager-gallery{order:-1}}
.filter{color:var(--ink);-webkit-text-fill-color:var(--ink);-webkit-appearance:none;appearance:none}.filter.active,.filter:hover{color:var(--paper);-webkit-text-fill-color:var(--paper)}
.preview-image-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.draft-image-preview{border-radius:12px;overflow:hidden}.hero-manager-thumb>.preview-image-button{width:100%;height:112px;border:0;border-radius:0;background:transparent}.hero-manager-thumb>.preview-image-button img{width:100%;height:100%;object-fit:contain;padding:8px}.gallery-admin-item>.preview-image-button{height:120px}.image-preview-dialog{width:min(94vw,1100px)!important;max-width:1100px!important;background:#fff!important;color:#101214!important;opacity:1!important}.image-preview-canvas{display:grid;place-items:center;min-height:45vh;max-height:72vh;overflow:auto;border-radius:12px;background:#e8e9e9}.image-preview-canvas img{display:block;width:auto;max-width:100%;height:auto;max-height:70vh;object-fit:contain}.image-preview-dialog>[data-slot="button"]{justify-self:end}
