:root{--ink:#12110f;--paper:#f3efe5;--paper-2:#e8e1d4;--line:rgba(18,17,15,.18);--muted:#716b61;--white:#fffdf7;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.55}
a{color:inherit}
button,input,textarea,select{font:inherit}
.site-header{height:86px;padding:0 clamp(22px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:relative;z-index:20}
.wordmark{font:600 17px/1 var(--sans);letter-spacing:.16em;text-decoration:none}
.quiet-link,.quiet-button{font-size:13px;text-decoration:none;color:var(--muted);background:none;border:0;cursor:pointer;padding:8px 0}
.header-actions{display:flex;align-items:center;gap:24px}.header-actions form{margin:0}
.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:11px;font-weight:600;color:var(--muted);margin:0 0 22px}
.hero{min-height:calc(100svh - 86px);display:flex;flex-direction:column;justify-content:center;padding:10vh clamp(24px,11vw,170px);position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;width:48vw;height:48vw;right:-10vw;top:12vh;border:1px solid var(--line);border-radius:50%;box-shadow:0 0 0 7vw rgba(18,17,15,.025),0 0 0 14vw rgba(18,17,15,.018)}
.hero h1{font:400 clamp(78px,14vw,210px)/.74 var(--serif);letter-spacing:-.055em;margin:0;max-width:1100px;position:relative;z-index:2}
.hero h1 em{font-weight:400;color:var(--muted)}
.hero-copy{max-width:520px;font-size:clamp(17px,2vw,22px);margin:48px 0 34px;position:relative;z-index:2}
.button{display:inline-flex;min-height:48px;align-items:center;justify-content:center;padding:0 22px;border:1px solid var(--ink);text-decoration:none;font-weight:600;font-size:14px;cursor:pointer;background:none;color:var(--ink);transition:.2s ease}
.button.primary{background:var(--ink);color:var(--paper);width:max-content}.button:hover{transform:translateY(-2px)}
.button.ghost{border-color:var(--line)}
.manifesto{display:grid;grid-template-columns:80px 1.2fr 1fr;gap:6vw;padding:110px clamp(24px,8vw,130px);background:var(--ink);color:var(--paper);align-items:start}
.manifesto-number{font-size:12px;color:#968f83}.manifesto h2{font:400 clamp(36px,5vw,70px)/.95 var(--serif);margin:0}.manifesto p{margin:5px 0 0;color:#bfb7a9;max-width:460px}

.person-hero{padding:clamp(60px,10vw,130px) clamp(24px,8vw,130px) 90px;display:grid;grid-template-columns:1fr minmax(280px,520px);column-gap:6vw;align-items:end}
.person-hero>.eyebrow,.person-hero>h1,.person-hero>.life-dates{grid-column:1}
.person-hero h1{font:400 clamp(76px,11vw,170px)/.78 var(--serif);letter-spacing:-.045em;margin:0}.life-dates{font-size:14px;color:var(--muted);margin:26px 0 0}
.person-headline{font:400 clamp(30px,4vw,56px)/1.02 var(--serif);margin:0 0 34px;grid-column:2;grid-row:2/4}
.ar-actions{grid-column:2;display:flex;gap:10px;flex-wrap:wrap}.camera-note{grid-column:2;color:var(--muted);font-size:12px;max-width:460px;margin-top:18px}
.memory-visual{min-height:680px;background:#191816;position:relative;overflow:hidden;display:grid;place-items:center;color:var(--paper)}
.memory-stage{position:relative;width:min(900px,95vw);height:570px;perspective:1000px;transform-style:preserve-3d;transition:transform .8s}
.floating-memory{position:absolute;left:50%;top:50%;width:clamp(92px,13vw,170px);aspect-ratio:4/5;margin:0;overflow:hidden;background:#292723;box-shadow:0 22px 50px #0008;border:1px solid #fff2;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.75,.2,1),opacity .6s}
.floating-memory img{width:100%;height:100%;object-fit:cover;filter:saturate(.88) contrast(1.03)}
.floating-memory.placeholder{display:grid;place-items:center;background:linear-gradient(145deg,#3a3732,#1f1d1a)}.floating-memory.placeholder span{font:italic 44px var(--serif);color:#bdb4a3}
.memory-stage:not(.sphere) .floating-memory{--angle:calc(-75deg + 150deg * var(--i) / max(1,var(--n) - 1));transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-230px) rotate(calc(-1 * var(--angle)))}
.memory-stage.sphere .floating-memory{--turn:calc(360deg * var(--i) / var(--n));transform:translate(-50%,-50%) rotateY(var(--turn)) translateZ(270px) rotateY(calc(-1 * var(--turn)));width:125px}
.memory-center{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.memory-center span{font:italic clamp(42px,8vw,90px) var(--serif);opacity:.22}
.layout-switch{position:absolute;bottom:30px;display:flex;border:1px solid #fff3}.layout-switch button{border:0;background:none;color:#aaa39a;padding:12px 20px;cursor:pointer}.layout-switch button.active{background:var(--paper);color:var(--ink)}
.life-story,.media-section,.gallery-section{padding:110px clamp(24px,8vw,130px)}
.story-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:9vw}.story-grid h2{font:400 clamp(38px,5vw,70px)/1 var(--serif);margin:0}.biography{font-size:clamp(16px,1.6vw,20px);max-width:680px}
.media-section{background:var(--paper-2)}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px}.media-grid figure{margin:0}.media-grid video{width:100%;background:#111}.audio-card{padding:30px;background:var(--white)}.audio-card audio{width:100%}figcaption{font-size:13px;color:var(--muted);padding-top:9px}
.photo-grid{columns:3 260px;column-gap:18px}.photo-grid figure{margin:0 0 18px;break-inside:avoid}.photo-grid img{display:block;width:100%;height:auto}
footer{padding:34px clamp(24px,5vw,76px);display:flex;justify-content:space-between;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

.admin-auth{background:var(--ink);color:var(--paper)}.auth-shell{min-height:100svh;display:grid;place-items:center;padding:24px}.auth-card{width:min(520px,100%);border:1px solid #ffffff2b;padding:46px;background:#1b1a18}.auth-card h1{font:400 58px var(--serif);margin:18px 0}.auth-card p{color:#aaa398}.auth-card label,.admin-card label{display:grid;gap:7px;font-size:13px;color:var(--muted);margin:17px 0}.auth-card input{background:#111;border:1px solid #ffffff35;color:#fff;padding:14px}.auth-card .button{width:100%;background:var(--paper);color:var(--ink)}.form-error{padding:12px;background:#8e312a;color:#fff}
.admin-page{background:#e9e4da}.admin-shell{padding:70px clamp(18px,5vw,72px) 120px}.admin-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}.admin-heading h1{font:400 clamp(60px,9vw,120px)/1 var(--serif);margin:0}.save-state{font-size:13px;color:var(--muted)}
.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:46px}.admin-card{background:#f8f5ee;padding:clamp(20px,3vw,38px);border:1px solid #00000017}.admin-card.wide{grid-column:1/-1}.admin-card h2{font:400 36px var(--serif);margin:0 0 24px}.admin-card input,.admin-card textarea,.admin-card select{width:100%;padding:12px;border:1px solid #0003;background:#fffdf8;color:var(--ink);border-radius:0}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-note{color:var(--muted);max-width:760px}.upload-box{border:1px dashed #0004;padding:16px}.file-drop{min-height:120px;place-items:center;text-align:center;cursor:pointer}.file-drop input{width:auto;border:0;background:transparent}.file-drop span{font-size:17px;color:var(--ink)}.file-drop small{display:block}.admin-media-list{margin-top:22px}.admin-media-list article{display:grid;grid-template-columns:66px 1fr auto;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line)}.admin-media-list img,.admin-media-list video,.audio-icon{width:66px;height:66px;object-fit:cover;background:#ddd;display:grid;place-items:center;font:32px var(--serif)}.admin-media-list small{display:block;color:var(--muted)}.delete-media{border:0;background:none;color:#9c3029;cursor:pointer}.calibration-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:0 16px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.button-row .button{width:auto}.save-state.ok{color:#39734a}.save-state.error{color:#a3332b}

@media(max-width:800px){.manifesto{grid-template-columns:1fr}.manifesto-number{display:none}.person-hero{grid-template-columns:1fr}.person-headline,.ar-actions,.camera-note{grid-column:1;grid-row:auto}.person-headline{margin-top:60px}.story-grid,.admin-grid{grid-template-columns:1fr}.admin-card.wide{grid-column:1}.calibration-fields{grid-template-columns:1fr 1fr}.photo-grid{columns:2 150px}.memory-visual{min-height:570px}.memory-stage{height:480px}.memory-stage:not(.sphere) .floating-memory{transform:translate(-50%,-50%) rotate(var(--angle)) translateY(-180px) rotate(calc(-1 * var(--angle)))}.memory-stage.sphere .floating-memory{transform:translate(-50%,-50%) rotateY(var(--turn)) translateZ(200px) rotateY(calc(-1 * var(--turn)))}}
@media(max-width:520px){.hero h1{font-size:72px}.site-header{height:70px}.person-hero h1{font-size:74px}.ar-actions{flex-direction:column}.ar-actions .button{width:100%}.story-grid{gap:45px}.photo-grid{columns:1}.field-pair,.calibration-fields{grid-template-columns:1fr}.admin-media-list article{grid-template-columns:55px 1fr}.delete-media{grid-column:2}.manifesto,.life-story,.media-section,.gallery-section{padding-top:75px;padding-bottom:75px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
