:root{color-scheme:light;--paper: #f7f7f4;--paper-soft: #eeeeea;--ink: #1b1b18;--soft-ink: #4f514c;--muted: #85877f;--line: #dcddd5;--white: #fffefb;--smoke: #e8e9e1;--accent: #7b3b33;--accent-cool: #516a75;--shadow: rgba(27, 27, 24, .11);--font-serif: "Avenir Next", "Neue Haas Grotesk Text", "Helvetica Neue", "Gill Sans", sans-serif;--font-sans: "Avenir Next", "Neue Haas Grotesk Text", "Helvetica Neue", "Gill Sans", sans-serif;--font-mono: "Courier Prime", "Courier New", monospace;--page: clamp(1.25rem, 4vw, 4.75rem);--header-h: 4.8rem;font-family:var(--font-sans);font-size:16px;letter-spacing:0}*,*:before,*:after{box-sizing:border-box}html,body{width:100%;height:100%}body{margin:0;overflow:hidden;background:radial-gradient(circle at 12% 8%,rgba(81,106,117,.08),transparent 26rem),linear-gradient(180deg,var(--paper),#fbfbf8 58%,var(--paper));color:var(--ink);font-family:var(--font-sans);line-height:1.58;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body:before{position:fixed;inset:0;z-index:60;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23noise)' opacity='.28'/%3E%3C/svg%3E");background-size:180px 180px;content:"";mix-blend-mode:multiply;opacity:.13}body:has(dialog[open]){overflow:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}::selection{background:#7b3b332b}:focus-visible{outline:1px solid var(--ink);outline-offset:4px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.skip-link{position:fixed;top:1rem;left:1rem;z-index:80;transform:translateY(-150%);border:1px solid var(--ink);background:var(--white);color:var(--ink);padding:.7rem 1rem;font-family:var(--font-sans)}.skip-link:focus{transform:translateY(0)}.site-header{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;justify-content:space-between;min-height:var(--header-h);padding:1rem var(--page);border-bottom:1px solid rgba(220,221,213,.64);background:#f7f7f4d1;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{color:var(--ink);font-family:var(--font-sans);font-size:.95rem}.site-nav{display:flex;align-items:center;gap:clamp(.7rem,2vw,1.6rem);font-family:var(--font-sans);font-size:.9rem}.site-nav a{position:relative;padding:.35rem 0;color:var(--muted);transition:color .24s ease,opacity .24s ease}.site-nav a:after{position:absolute;right:0;bottom:0;left:0;height:1px;transform:scaleX(0);transform-origin:left;background:currentColor;content:"";transition:transform .36s ease}.site-nav a:hover,.site-nav a:focus-visible,.site-nav a.is-active{color:var(--ink)}.site-nav a:hover:after,.site-nav a:focus-visible:after,.site-nav a.is-active:after{transform:scaleX(1)}.app-shell{height:100svh;overflow:hidden}.view{height:100svh;overflow-x:hidden;overflow-y:auto;padding:calc(var(--header-h) + 2rem) var(--page) 4rem;scrollbar-color:var(--muted) transparent;scrollbar-width:thin}.eyebrow{margin:0 0 1rem;color:var(--muted);font-family:var(--font-sans);font-size:.76rem;line-height:1.35;text-transform:uppercase}.view-actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;border:1px solid var(--line);border-radius:2px;background:#fffefb9e;color:var(--ink);padding:.72rem 1.05rem;cursor:pointer;font-family:var(--font-sans);transition:border-color .24s ease,background .24s ease,color .24s ease,transform .24s ease}.button:hover,.button:focus-visible{border-color:var(--ink);transform:translateY(-1px)}.button-dark{border-color:var(--ink);background:var(--ink);color:var(--white)}.projects-view{display:grid;grid-template-rows:minmax(0,1fr);height:100svh;overflow:hidden;padding:0;background:linear-gradient(90deg,rgba(220,221,213,.34) 1px,transparent 1px) 0 0 / 25vw 100%,var(--paper)}.loading-text{color:var(--soft-ink);font-size:clamp(1.1rem,2vw,1.6rem)}.project-contact{position:fixed;top:clamp(1rem,2.2vw,1.6rem);right:var(--page);z-index:35;display:flex;align-items:center;gap:.8rem;color:var(--soft-ink);font-family:var(--font-sans);font-size:.78rem}.project-contact a{color:inherit;border-bottom:1px solid currentColor;padding:.1rem 0}.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(2.4rem,5vw,5rem);min-height:0;overflow-x:hidden;overflow-y:auto;padding:clamp(5.5rem,10vw,8rem) var(--page) clamp(4rem,8vw,7rem);scrollbar-width:none}.project-grid::-webkit-scrollbar{display:none}.project-grid--loading{display:grid;place-items:center}.project-card{min-width:0;height:min(26rem,56svh);min-height:18rem}.project-card-featured{grid-column:1 / -1;height:min(42rem,76svh);min-height:30rem}.project-open{position:relative;display:grid;width:100%;height:100%;min-height:0;overflow:hidden;border:0;border-radius:0;background:var(--smoke);color:var(--white);cursor:pointer;padding:0;text-align:left;box-shadow:0 22px 60px #1b1b181a}.project-open:after{position:absolute;inset:0;background:linear-gradient(180deg,#0c0c0b05,#0c0c0b0d 42%,#0c0c0b9e),linear-gradient(90deg,#0c0c0b2e,#0c0c0b00);content:"";opacity:.9;transition:opacity .5s ease}.project-open:hover:after,.project-open:focus-visible:after{opacity:.74}.project-number{position:absolute;top:1rem;left:1rem;z-index:2;color:#fffefbb8;font-family:var(--font-sans);font-size:.76rem}.projects-intro{position:absolute;top:.98rem;left:3.15rem;z-index:2;color:#fffefbc2;font-family:var(--font-sans);font-size:.76rem}.project-thumb{position:absolute;inset:0;display:block;min-height:0;overflow:hidden;background:var(--smoke)}.project-thumb img{width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.76) contrast(.94);transform:scale(1.01);transition:opacity .62s ease,filter .8s ease,transform 1.2s ease}.project-thumb img.loaded{opacity:1}.project-open:hover .project-thumb img,.project-open:focus-visible .project-thumb img{filter:saturate(.95) contrast(1);transform:scale(1.04)}.project-copy{position:relative;z-index:2;align-self:end;display:grid;gap:.3rem;width:min(100%,34rem);padding:clamp(1.05rem,2vw,1.55rem);padding-left:clamp(3rem,4vw,4rem);text-shadow:0 1px 18px rgba(0,0,0,.42)}.project-kicker,.project-role{overflow:hidden;color:#fffefbb8;font-family:var(--font-sans);font-size:clamp(.68rem,.8vw,.8rem);line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.project-copy strong{color:var(--white);font-size:clamp(1.7rem,3vw,4.25rem);font-weight:400;line-height:.98;overflow-wrap:break-word}.project-card-featured .project-copy strong{font-size:clamp(2.8rem,6.4vw,7.2rem);line-height:.92}.project-description{display:-webkit-box;overflow:hidden;max-width:30rem;color:#fffefbc7;font-size:clamp(.82rem,.98vw,.98rem);font-style:normal;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.project-modal{width:min(76rem,calc(100vw - 2rem));height:min(54rem,calc(100svh - 2rem));max-height:calc(100svh - 2rem);padding:0;border:0;border-radius:0;background:var(--white);color:var(--ink);overflow:auto;box-shadow:0 28px 90px #00000038}.project-modal::backdrop{background:#11110f6b;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.modal-close{position:fixed;top:max(1rem,calc((100svh - min(54rem,calc(100svh - 2rem)))/2 + 1rem));right:max(1rem,calc((100vw - min(76rem,calc(100vw - 2rem)))/2 + 1rem));z-index:5;display:grid;place-items:center;width:2.25rem;height:2.25rem;border:1px solid rgba(255,254,251,.5);border-radius:0;background:#11110f80;color:var(--white);cursor:pointer;font-family:var(--font-sans);font-size:1rem;line-height:1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.modal-close:hover,.modal-close:focus-visible{background:#11110fc7}.project-detail{min-height:100%;background:linear-gradient(90deg,rgba(220,221,213,.28) 1px,transparent 1px) 0 0 / 25% 100%,var(--white)}.detail-hero{position:relative;display:grid;align-items:end;min-height:72svh;overflow:hidden;color:var(--white)}.detail-hero:after{position:absolute;inset:0;background:linear-gradient(180deg,#0a0a0905,#0a0a092e 42%,#0a0a099e),linear-gradient(90deg,#0a0a095c,#0a0a0914);content:""}.detail-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .42s ease,filter .42s ease}.detail-hero img.is-changing{opacity:.45;filter:saturate(.75)}.detail-hero-copy{position:relative;z-index:1;display:grid;gap:.55rem;width:min(42rem,100%);padding:clamp(1.25rem,3vw,2.2rem);text-shadow:0 1px 18px rgba(0,0,0,.42)}.detail-hero-copy p,.detail-hero-copy span{margin:0;color:#fffefbbd;font-family:var(--font-sans);font-size:.82rem}.detail-hero-copy h2{margin:0;max-width:12ch;color:var(--white);font-size:clamp(2.2rem,5vw,5.5rem);font-weight:400;line-height:.96}.detail-body{display:grid;gap:clamp(1.6rem,4vw,3rem);padding:clamp(1.4rem,3vw,2.2rem)}.detail-intro{width:min(48rem,100%)}.detail-intro p{color:var(--soft-ink);font-size:clamp(1.2rem,2vw,2rem);line-height:1.3}.detail-video{margin-right:calc(clamp(1.4rem,3vw,2.2rem)*-1);margin-left:calc(clamp(1.4rem,3vw,2.2rem)*-1)}.video-frame{overflow:hidden;background:var(--ink);aspect-ratio:16 / 9}.video-frame iframe{width:100%;height:100%;border:0}.detail-sections{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}.detail-sections section,.detail-notes{padding:clamp(1rem,2vw,1.4rem);background:#fffefbd1}.detail-sections h3,.detail-notes h3,.detail-gallery h3{margin:0 0 .65rem;color:var(--muted);font-family:var(--font-sans);font-size:.78rem;font-weight:400;text-transform:uppercase}.detail-sections p,.detail-notes li{margin:0;color:var(--soft-ink);font-size:.96rem;line-height:1.62}.detail-notes ul{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.detail-notes li:before{color:var(--accent);content:"/ "}.detail-gallery{display:grid;gap:.75rem;margin-right:calc(clamp(1.4rem,3vw,2.2rem)*-1);margin-left:calc(clamp(1.4rem,3vw,2.2rem)*-1)}.detail-gallery h3{padding-right:clamp(1.4rem,3vw,2.2rem);padding-left:clamp(1.4rem,3vw,2.2rem)}.detail-gallery>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line)}.detail-gallery img{width:100%;aspect-ratio:4 / 3;background:var(--smoke);object-fit:cover}.manage-view{padding-top:5.5rem;padding-bottom:4rem}.manage-view--login{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:2rem}.manage-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.75rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.eyebrow{font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 .25rem}.manage-header h1{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1;margin:0}.manage-header-actions{display:flex;gap:.4rem;align-items:center;flex-shrink:0}.notice{display:flex;align-items:center;gap:.5rem;font-size:.84rem;padding:.6rem .9rem;border-radius:8px;margin-bottom:1.25rem;border:1px solid var(--line)}.notice--ok{background:#f0fdf4;color:#166534;border-color:#bbf7d0}.notice--warn{background:#fefce8;color:#854d0e;border-color:#fde68a}.manage-list-panel{background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.9rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white)}.panel-head h2{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 .2rem;display:flex;align-items:center;gap:.4rem}.panel-subtitle{margin:0;color:var(--muted);font-size:.78rem}.count-badge{font-size:.68rem;font-weight:700;padding:.1rem .42rem;border:1px solid var(--line);border-radius:100px;color:var(--muted)}.manage-projects-list{list-style:none;margin:0;padding:0}.manage-item{display:grid;grid-template-columns:2.4rem 44px 1fr auto;gap:.85rem;align-items:center;padding:.65rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white);transition:background .1s;position:relative}.manage-item:last-child{border-bottom:none}.manage-item:hover{background:#fafafa}.manage-item--active{background:#f4f8ff}.manage-item--active:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ink);border-radius:0 2px 2px 0}.manage-item--dragging{opacity:.35;background:#f5f5f5}.manage-item--drag-over-top{box-shadow:inset 0 2px 0 var(--ink)}.manage-item--drag-over-bottom{box-shadow:inset 0 -2px 0 var(--ink)}.manage-drag-handle{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:5px;color:#ccc;cursor:grab;flex-shrink:0;transition:color .12s,background .12s;-webkit-user-select:none;user-select:none;touch-action:none}.manage-drag-handle:hover{color:var(--soft-ink);background:#efefef}.manage-drag-handle:active{cursor:grabbing}.manage-item-thumb,.manage-item-thumb--empty{width:44px;height:44px;border-radius:6px;object-fit:cover;flex-shrink:0;border:1px solid var(--line);display:block}.manage-item-thumb--empty{background:#f0f0f0}.manage-item-meta{min-width:0;display:flex;flex-direction:column;gap:.12rem}.manage-item-meta strong{font-size:.875rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manage-item-meta span{font-size:.75rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.featured-badge{display:inline-block;width:fit-content;font-size:.64rem;font-weight:700;color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:100px;padding:.07rem .42rem}.manage-item-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.delete-confirm-label{font-size:.75rem;color:#d32f2f;font-weight:700;white-space:nowrap}dialog.manage-dialog{position:fixed;inset:0;margin:auto;width:calc(100vw - 2rem);max-width:660px;max-height:calc(100dvh - 3rem);overflow-y:auto;border:1px solid var(--line);border-radius:12px;padding:0;box-shadow:0 12px 48px #00000029,0 2px 8px #0000000f;background:var(--white);overscroll-behavior:contain}dialog.manage-dialog::backdrop{background:#0a0a0a66;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.dialog-head{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem 1.25rem;border-bottom:1px solid var(--line);background:var(--white)}.dialog-head-left{min-width:0}.dialog-head h2{font-size:.95rem;font-weight:700;color:var(--ink);margin:0;letter-spacing:-.01em}.dialog-head-sub{margin:.15rem 0 0;font-size:.76rem;color:var(--muted)}.editing-badge{font-size:.73rem;padding:.18rem .6rem;background:#eff6ff;color:#1d4ed8;border-radius:100px;border:1px solid #bfdbfe;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px;display:block;flex-shrink:0}.dialog-close-btn{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:1px solid var(--line);border-radius:6px;background:transparent;color:var(--soft-ink);cursor:pointer;flex-shrink:0;transition:background .12s,color .12s}.dialog-close-btn:hover{background:#f5f5f5;color:var(--ink)}.dialog-close-btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}#manage-form{padding:0 1.25rem 1.25rem}.form-section{border:none;padding:0;margin:0}.form-section+.form-section{border-top:1px solid var(--line)}.form-section-title{display:block;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);padding:1rem 0 .6rem}.field{display:flex;flex-direction:column;gap:.28rem;min-width:0}.field--full{width:100%}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.form-section>.field,.form-section>.field-row,.form-section>.image-upload-area,.form-section>.detail-block{margin-bottom:.6rem}.field-label{font-size:.78rem;font-weight:600;color:var(--soft-ink)}.field-hint{font-weight:400;color:var(--muted)}.required{color:#d32f2f}.manage-dialog input:not([type=file]),.manage-dialog textarea,.panel-login input{width:100%;padding:.5rem .7rem;border:1px solid var(--line);border-radius:6px;background:var(--white);color:var(--ink);font:inherit;font-size:.875rem;resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.manage-dialog input:not([type=file]):focus-visible,.manage-dialog textarea:focus-visible,.panel-login input:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #0000000f}.manage-dialog input[type=file]{font-size:.8rem;color:var(--soft-ink);cursor:pointer}.image-upload-area{display:grid;grid-template-columns:86px 1fr;gap:.75rem;align-items:start}@media(max-width:480px){.image-upload-area,.field-row,.detail-block{grid-template-columns:1fr}}.image-upload-controls{display:flex;flex-direction:column;gap:.5rem}.manage-upload-preview{border:1px dashed var(--line);border-radius:8px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8f8f8}.manage-upload-preview img{width:100%;height:100%;object-fit:cover;display:block}.preview-placeholder{display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--muted);font-size:.7rem;text-align:center;padding:.5rem}.manage-upload-preview--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:4px;aspect-ratio:unset;padding:.5rem;min-height:58px}.manage-upload-preview--grid img{border-radius:4px;width:100%;aspect-ratio:1;object-fit:cover}.preview-placeholder--sm{padding:.75rem}.detail-block{display:grid;grid-template-columns:1fr 2fr;gap:.65rem;align-items:start}.form-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:1rem;margin-top:.25rem;border-top:1px solid var(--line)}.btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.875rem;font-weight:500;padding:.5rem 1rem;border-radius:6px;border:1px solid var(--line);cursor:pointer;background:var(--white);color:var(--ink);font-family:inherit;white-space:nowrap;transition:background .12s,opacity .12s;line-height:1}.btn:hover{background:#f5f5f5}.btn:active{opacity:.8}.btn:disabled{cursor:not-allowed;opacity:.35}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn--primary{background:var(--ink);color:var(--white);border-color:var(--ink)}.btn--primary:hover{opacity:.85;background:var(--ink)}.btn--ghost{background:transparent;border-color:transparent;color:var(--soft-ink)}.btn--ghost:hover{background:#f5f5f5;color:var(--ink)}.btn--danger{background:#fff0f0;color:#d32f2f;border-color:#f5c6c6}.btn--danger:hover{background:#ffe0e0}.btn--danger-ghost{background:transparent;border-color:transparent;color:#ccc}.btn--danger-ghost:hover{background:#fff0f0;color:#d32f2f}.btn--sm{font-size:.8rem;padding:.38rem .85rem}.btn--xs{font-size:.73rem;padding:.25rem .6rem}.btn--full{width:100%;justify-content:center}.btn--icon{width:2rem;height:2rem;padding:0;justify-content:center}.panel-login{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:2rem;width:100%;max-width:360px}.panel-login h1{font-size:1.4rem;font-weight:700;letter-spacing:-.02em;margin:.2rem 0 1.5rem}.login-form{display:flex;flex-direction:column;gap:.75rem}.hint{font-size:.78rem;color:var(--muted);margin:0}.hint--center{text-align:center;padding:2.5rem 1.25rem}.hint code{font-size:.75rem;background:#f0f0f0;padding:.1em .35em;border-radius:3px}.upload-save-hint{margin-top:-.2rem}.crop-overlay{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;background:#141414d1;color:#f0f0f0;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:1rem}.crop-overlay::backdrop{background:transparent}.crop-overlay:not([open]){display:none}.crop-panel{background:#1e1e1e;border-radius:14px;width:100%;max-width:760px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 80px #0000008c;font-family:inherit}.crop-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid rgba(255,255,255,.08)}.crop-title{font-size:.875rem;font-weight:600;color:#f0f0f0}.crop-close-btn{background:transparent;border:none;color:#888;cursor:pointer;padding:.3rem;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.crop-close-btn:hover{background:#ffffff14;color:#ccc}.crop-close-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-stage-wrapper{flex:1;min-height:0;max-height:55vh;overflow:hidden;display:flex;align-items:center;justify-content:center;padding:1rem;background:#141414}.crop-target-img{display:block;max-width:100%;max-height:55vh;width:auto;height:auto}.cropper-container{background:#141414!important}.cropper-view-box{outline:2px solid rgba(255,255,255,.7)!important;outline-offset:-2px}.cropper-line,.cropper-point{background:#ffffff80!important}.cropper-modal{background:#141414b3!important}.crop-toolbar{padding:.85rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:.7rem;background:#1e1e1e}.crop-toolbar-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.crop-toolbar-group{display:flex;align-items:center;gap:.5rem}.crop-toolbar-group--flip{gap:.25rem}.crop-toolbar-label{font-size:.72rem;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;min-width:60px}.crop-ar-buttons{display:flex;gap:.25rem;flex-wrap:wrap}.ar-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#aaa;font-size:.75rem;font-weight:600;padding:.3rem .6rem;border-radius:6px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.ar-btn:hover{background:#ffffff1f;color:#eee}.ar-btn--active{background:#ffffff26;color:#fff;border-color:#ffffff59}.ar-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-zoom-slider{width:120px;accent-color:#fff;cursor:pointer;height:4px}.crop-flip-btn,.crop-rotate-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:#aaa;border-radius:6px;cursor:pointer;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;padding:0}.crop-flip-btn:hover,.crop-rotate-btn:hover{background:#ffffff24;color:#eee}.crop-flip-btn:focus-visible,.crop-rotate-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.crop-panel-footer{display:flex;justify-content:flex-end;gap:.6rem;padding:.85rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);background:#1e1e1e}.crop-panel-footer .btn{font-size:.82rem;padding:.45rem 1rem}.crop-cancel-btn{background:transparent;border:1px solid rgba(255,255,255,.15);color:#aaa}.crop-cancel-btn:hover{background:#ffffff0f;color:#ccc}.crop-confirm-btn{background:#f5f5f5;color:#111;border:1px solid transparent}.crop-confirm-btn:hover{background:#e8e8e8}.project-grid--loading{display:flex;align-items:center;justify-content:center;min-height:30vh}.loading-text{color:var(--muted);font-size:.9rem;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@media(max-width:1060px){.about-view{grid-template-columns:1fr}.about-details{grid-template-columns:repeat(3,minmax(0,1fr))}.detail-sections{grid-template-columns:1fr}.manage-layout{grid-template-columns:1fr;gap:2rem}.manage-grid{grid-template-columns:repeat(auto-fill,minmax(13.5rem,1fr))}}@media(max-width:760px){:root{--header-h: 4.2rem}.site-header{padding:.85rem 1rem}.brand,.site-nav{font-size:.86rem}.view{padding:calc(var(--header-h) + 1.4rem) 1rem 3rem}.projects-view{padding:0}.project-contact{top:.85rem;right:1rem;left:1rem;justify-content:space-between;gap:.6rem;font-size:.68rem}.project-contact a{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-grid{grid-template-columns:1fr;gap:2.1rem;padding:4rem 1rem}.project-card,.project-card-featured{grid-column:auto;height:min(24rem,52svh);min-height:18rem}.project-card-featured{height:min(36rem,72svh);min-height:29rem}.project-open{padding:0}.project-number{top:.8rem;left:.82rem;font-size:.68rem}.projects-intro{top:.78rem;left:2.6rem;font-size:.68rem}.project-kicker,.project-role{font-size:.58rem}.project-copy{gap:.2rem;padding:.9rem .9rem .9rem 2.65rem}.project-copy strong,.project-card-featured .project-copy strong{font-size:clamp(1.8rem,10vw,3.2rem);line-height:.98}.project-description{font-size:.78rem;-webkit-line-clamp:2}.about-view{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:.9rem;padding:calc(var(--header-h) + .95rem) 1rem 1rem}.about-view h1{max-width:11ch;margin-bottom:.85rem;font-size:clamp(2.35rem,12vw,3.35rem)}.about-copy p,.about-details p{font-size:.86rem;line-height:1.42}.about-details{grid-template-columns:repeat(3,minmax(0,1fr))}.about-details article{min-height:0;padding:.62rem}.about-details h2{margin-bottom:.32rem;font-size:.62rem}.view-actions{display:grid;gap:.55rem;margin-top:.9rem}.button{width:100%;min-height:2.6rem}.project-modal{width:100vw;height:100svh;max-height:100svh;border:0}.modal-close{top:.75rem;right:.75rem}.detail-hero{min-height:70svh}.detail-hero-copy h2{font-size:clamp(2.7rem,15vw,4.8rem)}.detail-body{gap:2rem;padding:2rem 1rem}.detail-intro p{font-size:1.35rem}.detail-sections section,.detail-notes{min-height:0;padding:1rem}.detail-gallery>div{grid-template-columns:1fr}}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{inset:0;position:absolute}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:calc(100% / 3);left:0;top:calc(100% / 3);width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:calc(100% / 3);top:0;width:calc(100% / 3)}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media(min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media(min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media(min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
