:root{--bg:#120907;--paper:#e7cf9e;--red:#d94b20;--red2:#8c140e;--gold:#e6b34a;--gold2:#ffe0a3;--ink:#2a1b10;--text:#fff2d4;--muted:rgba(255,242,212,.76);--border:rgba(255,255,255,.14)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 100% 0%,rgba(217,75,32,.34),transparent 34%),#110907;color:var(--text);overflow-x:hidden}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.22;background:url('/assets/ribbon-wide.png') top right/min(520px,70vw) auto no-repeat,repeating-linear-gradient(135deg,transparent 0 64px,rgba(238,110,24,.14) 64px 78px,rgba(12,10,9,.18) 78px 92px)}img{max-width:100%}.hero-mini{position:sticky;top:0;z-index:50;display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 6vw;background:rgba(12,7,5,.82);backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}.brand{color:white;text-decoration:none;font-weight:1000;letter-spacing:.4px;font-size:clamp(18px,2.8vw,24px)}.brand span{background:linear-gradient(90deg,#fff,var(--gold2));-webkit-background-clip:text;color:transparent}.brand small{display:block;color:var(--gold);font-size:12px;margin-top:3px;font-weight:800}nav{display:flex;align-items:center;gap:20px;flex-wrap:wrap}nav a{color:white;text-decoration:none;font-weight:800;opacity:.92}.home-hero{min-height:calc(100vh - 76px);display:grid;align-items:center;padding:clamp(48px,8vw,120px) 7vw;position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(17,7,4,.94),rgba(34,11,6,.68)),url('/assets/img/hero.svg') center/cover}.home-hero:after{content:"";position:absolute;right:5vw;top:10vh;width:min(340px,38vw);aspect-ratio:1;background:url('/assets/ribbon-medal.png') center/contain no-repeat;opacity:.95;filter:drop-shadow(0 22px 42px rgba(0,0,0,.5))}.home-hero>div{position:relative;z-index:2;max-width:940px}.eyebrow{color:var(--gold2);font-weight:1000;text-transform:uppercase;letter-spacing:2px;margin-bottom:20px}.home-hero h1{margin:0 0 28px;font-size:clamp(48px,8vw,112px);line-height:.92;font-weight:1000;letter-spacing:-4px;text-shadow:0 18px 55px rgba(0,0,0,.55)}.home-hero p{max-width:760px;font-size:clamp(18px,2vw,24px);line-height:1.65;color:var(--muted);margin-bottom:34px}.btn,.submit-link{display:inline-flex;align-items:center;justify-content:center;padding:15px 28px;border-radius:16px;background:linear-gradient(180deg,#e85825,#aa1d12);color:white;text-decoration:none;font-weight:950;border:0;cursor:pointer;box-shadow:0 16px 40px rgba(217,75,32,.32)}.section-title,.page-title{padding:70px 7vw 26px;margin:0;font-size:clamp(34px,5vw,58px);line-height:1;color:var(--gold2);font-weight:1000}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:24px;padding:0 7vw 80px}.soldier-card{overflow:hidden;text-decoration:none;color:white;background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:24px;box-shadow:0 18px 50px rgba(0,0,0,.25)}.soldier-card img{width:100%;height:310px;object-fit:cover;display:block;filter:sepia(.2) contrast(1.05)}.soldier-card b{display:block;padding:18px 18px 8px;font-size:21px;line-height:1.15}.soldier-card span{display:block;padding:0 18px 22px;color:var(--muted)}.banner-row{display:flex;gap:16px;overflow-x:auto;padding:26px 7vw 0}.game-banner{position:relative;flex:0 0 min(300px,78vw);height:172px;border-radius:22px;overflow:hidden;text-decoration:none;color:white;background:#111;box-shadow:0 18px 45px rgba(0,0,0,.28)}.game-banner img{width:100%;height:100%;object-fit:cover;display:block}.game-banner:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(0,0,0,.78))}.game-banner strong{position:absolute;left:18px;bottom:16px;z-index:2;font-size:21px;font-weight:1000}.album-hero{padding:62px 7vw 24px;text-align:center}.album-hero h1{margin:0 0 12px;color:var(--gold2);font-size:clamp(42px,7vw,78px);line-height:.95}.album-hero p{color:var(--muted);margin:0 auto;max-width:720px;font-size:18px;line-height:1.6}.public-search,.submit-form{width:min(1120px,calc(100% - 28px));margin:18px auto 34px;padding:clamp(18px,3vw,28px);border-radius:28px;background:rgba(255,255,255,.07);border:1px solid var(--border);box-shadow:0 18px 55px rgba(0,0,0,.22);display:flex;flex-direction:column;gap:18px}.search-main{display:grid;grid-template-columns:1fr auto;gap:12px}.public-search input,.submit-form input,.submit-form textarea{width:100%;min-width:0;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.09);color:white;border-radius:14px;padding:14px 16px;outline:none}.advanced-search summary{cursor:pointer;user-select:none;display:inline-flex;padding:12px 0;color:var(--gold2);font-weight:950}.advanced-grid,.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.submit-link{width:fit-content;margin-top:22px}.memory-book{width:min(1280px,calc(100% - 28px));margin:28px auto 80px;display:grid;grid-template-columns:1fr 1fr;gap:0;position:relative;padding:34px;border-radius:24px;background:linear-gradient(90deg,rgba(0,0,0,.28),transparent 6%,transparent 94%,rgba(0,0,0,.26)),linear-gradient(90deg,var(--paper),#f0dcb1 49%,#b98d52 50%,#f0dcb1 51%,var(--paper));box-shadow:0 30px 90px rgba(0,0,0,.45);border:1px solid rgba(80,40,12,.35)}.book-page{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-content:start;gap:24px;padding:clamp(18px,3vw,40px);min-height:640px}.book-photo-card{text-decoration:none;color:var(--ink);background:radial-gradient(circle at top left,rgba(255,255,255,.55),transparent 35%),#e9d29c;border:1px solid rgba(101,66,25,.26);box-shadow:0 8px 18px rgba(79,47,17,.18);padding:12px;text-align:center;position:relative}.book-photo-card img{width:100%;aspect-ratio:1/1.05;object-fit:cover;display:block;filter:grayscale(1) sepia(.18);background:#c8b99e}.book-photo-card span{display:block;padding:10px 4px 2px;font-size:clamp(14px,1.7vw,18px);line-height:1.15;font-weight:800}.profile{display:grid;grid-template-columns:minmax(260px,380px) minmax(0,1fr);gap:52px;padding:70px 7vw 40px}.portrait-collage,.media-collage{display:grid;gap:8px;width:100%}.collage img{width:100%;height:100%;object-fit:cover;border-radius:18px;border:1px solid var(--border);box-shadow:0 18px 46px rgba(0,0,0,.28)}.portrait-collage{grid-template-columns:1fr}.portrait-collage.count-2{grid-template-columns:1fr 1fr}.portrait-collage img{aspect-ratio:3/4}.profile h1{margin:0 0 30px;font-size:clamp(40px,6vw,74px);line-height:.96;color:var(--gold2)}.profile dl{display:grid;grid-template-columns:210px minmax(0,1fr);gap:16px 24px;padding:24px;background:rgba(255,255,255,.07);border:1px solid var(--border);border-radius:24px}.profile dt{color:var(--gold2);font-weight:950}.profile dd{margin:0;color:rgba(255,255,255,.86);overflow-wrap:anywhere}.tabs{margin:0 auto 80px;width:min(1120px,calc(100% - 28px));padding:clamp(22px,4vw,38px);background:rgba(255,255,255,.07);border:1px solid var(--border);border-radius:30px;box-shadow:0 18px 60px rgba(0,0,0,.24)}.tabs h2{margin:28px 0 14px;color:var(--gold2);font-size:clamp(25px,4vw,32px)}.tabs h2:first-child{margin-top:0}.tabs p{color:var(--muted);line-height:1.8;font-size:17px;overflow-wrap:anywhere}.media-collage{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));margin:12px 0 22px}.media-collage img{aspect-ratio:4/3;max-height:260px}.external-link{color:var(--gold2);font-weight:900}.file-upload{position:relative;display:block}.file-upload input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;z-index:3}.file-upload-box{margin-top:8px;min-height:62px;border:1px dashed rgba(244,212,139,.55);border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.045));display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;color:rgba(255,255,255,.82)}.file-upload-btn{background:linear-gradient(180deg,#e85825,#aa1d12);color:white;padding:10px 15px;border-radius:13px;font-weight:950;white-space:nowrap}.file-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-grid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}.preview-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:12px;border:1px solid var(--border)}.preview-grid .preview-item{position:relative;overflow:hidden;border-radius:12px}.preview-grid .preview-item span{position:absolute;inset:auto 0 0 0;background:rgba(0,0,0,.66);color:white;font-size:10px;padding:4px;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.upload-loader{display:none;margin-top:18px;padding:14px 18px;border-radius:16px;background:rgba(217,164,65,.14);border:1px solid rgba(217,164,65,.35);color:#f4d48b;font-weight:900}.upload-loader.show{display:flex;align-items:center;gap:12px}.upload-loader:before{content:"";width:22px;height:22px;border:3px solid rgba(244,212,139,.35);border-top-color:#f4d48b;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.alert{padding:14px 16px;border-radius:16px;margin-bottom:18px;font-weight:900}.alert.success{background:rgba(36,150,78,.18);color:#9ef0b6}.alert.error{background:rgba(210,40,40,.18);color:#ffb0b0}.toast{position:fixed;right:22px;bottom:22px;z-index:99;background:linear-gradient(180deg,#2eb85c,#157a37);color:white;padding:16px 20px;border-radius:16px;box-shadow:0 18px 45px rgba(0,0,0,.3);font-weight:900}footer{text-align:center;padding:34px 7vw;color:rgba(255,255,255,.58);border-top:1px solid var(--border);background:rgba(0,0,0,.18)}.wide{grid-column:1/-1}@media(max-width:980px){.hero-mini{align-items:flex-start;flex-direction:column}nav{gap:12px}.home-hero{min-height:680px;padding:48px 6vw 96px}.home-hero:after{width:130px;top:22px;right:18px;opacity:.45}.home-hero h1{letter-spacing:-2px}.memory-book{grid-template-columns:1fr;padding:18px}.book-page{min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));padding:18px;gap:16px}.profile{grid-template-columns:1fr;gap:28px;padding:44px 18px 28px}.profile dl{grid-template-columns:1fr}.advanced-grid,.form-grid,.search-main{grid-template-columns:1fr}.submit-link{width:100%}}@media(max-width:560px){.book-page{grid-template-columns:1fr 1fr;gap:10px;padding:10px}.book-photo-card{padding:7px}.book-photo-card span{font-size:12px}.soldier-card img{height:260px}.file-upload-box{flex-direction:column;align-items:stretch}.file-upload-btn{text-align:center}}


/* v6 advanced search arrow */
.advanced-search summary::after {
    content: "▼";
    display: inline-block;
    margin-left: 10px;
    font-size: 13px;
    transition: transform .22s ease;
}

.advanced-search[open] summary::after {
    transform: rotate(180deg);
}

/* v6 upload groups */
.upload-group {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
}

.upload-group label {
    min-width: 0;
}

.preview-grid {
    margin-top: 12px;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(74px, 1fr));
    gap: 8px;
}

.preview-grid .preview-item {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
}

.preview-grid img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
    border-radius: 12px;
    border: 1px solid var(--border);
}

.preview-grid .preview-item span {
    position: absolute;
    inset: auto 0 0 0;
    background: rgba(0,0,0,.68);
    color: white;
    padding: 4px;
    font-size: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
