.identity-link{color:var(--lime,#c0fb60);font-weight:700;text-decoration:none}.author-crown{color:#ffd46a;font-size:1.3em}.profile-identity{display:flex;align-items:center;gap:20px;margin:24px 0}.profile-avatar{display:block;width:112px;height:112px;object-fit:cover;border-radius:50%;border:2px solid #b49aff;margin:12px 0}.feed-photo{padding:14px;display:flex;flex-direction:column;gap:12px;min-width:0}.photo-open{padding:0;border:0;border-radius:16px;overflow:hidden;background:#151b18;cursor:pointer}.photo-open img{display:block;width:100%;height:240px;object-fit:cover}.feed-photo small{color:#a6afa1}.feed-photo p{overflow-wrap:anywhere;margin:0}.feed-photo .small-button{align-self:flex-start}.account-panel{margin:32px 0}.account-form input[type=file]{max-width:100%}.photo-dialog{max-width:min(92vw,700px)}.photo-dialog::backdrop{background:#050908c9}.photo-dialog a{color:#c0fb60}.site-header nav{flex-wrap:wrap}#visitorProfile{display:flex;gap:18px;flex-wrap:wrap;align-items:center}#visitorProfile[hidden]{display:none}@media(max-width:600px){.profile-identity{align-items:flex-start}.profile-avatar{width:86px;height:86px}.feed-photo{padding:10px}.site-header{gap:14px}.photo-open img{height:220px}}
.header nav{flex-wrap:wrap}.profile-avatar[hidden]{display:none}.upload-panel{display:grid;gap:16px;padding:24px}.upload-panel[hidden]{display:none}.upload-panel label{display:grid;gap:8px}.upload-panel .consent-line{display:flex}.feed-photo .small-button{padding:10px 16px;width:auto;border:1px solid #53614a;border-radius:12px}.upload-panel input{max-width:100%}

.rules-dialog{width:min(680px,92vw);line-height:1.65}.rules-dialog li{margin:12px 0}.rules-dialog>.jump-button{display:block;margin:24px 0 0;width:100%}.moderation-panel{padding:24px;margin:24px 0}.moderation-panel[hidden]{display:none}.moderation-list{display:grid;gap:16px}.moderation-card{border:1px solid #424e3b;border-radius:16px;padding:20px;overflow-wrap:anywhere}.moderation-card label{display:grid;gap:8px}.moderation-card select{width:100%;max-width:100%;background:#171c16;color:#eef5e5;padding:12px;border:1px solid #53614a;border-radius:12px}.moderation-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.moderation-actions button{min-height:44px}.moderation-card p{line-height:1.5}@media(max-width:600px){.moderation-panel{padding:16px}.moderation-card{padding:14px}.moderation-actions button{flex:1 1 140px}.rules-dialog{padding:18px}.rules-dialog ol{padding-left:22px}}
.schedule-preview{display:block;width:100%;max-height:65vh;object-fit:contain;background:#080b09;border-radius:12px}.schedule-preview[hidden]{display:none}.schedule-edit-rows{display:grid;gap:14px}.schedule-edit-row{display:grid;grid-template-columns:150px minmax(0,1fr) 110px;gap:12px;align-items:center;padding:12px;border:1px solid #424e3b;border-radius:12px}.schedule-edit-row label{min-width:0}.schedule-edit-row input{width:100%;min-width:0}@media(max-width:600px){.schedule-edit-row{grid-template-columns:minmax(0,1fr) 95px}.schedule-edit-row>strong{grid-column:1/-1}}
.game-profiles{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 28px}.game-profile-card{padding:16px;border:1px solid #424e3b;border-radius:16px;background:#121a12}.support-threads{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0;max-height:240px;overflow:auto}.support-messages{display:grid;gap:12px;max-height:480px;overflow:auto;margin:20px 0}.support-message{padding:16px;border:1px solid #46503f;border-radius:14px;overflow-wrap:anywhere}.support-message p{white-space:pre-wrap}.support-message small{display:block;color:#a6afa1}.account-form textarea{width:100%;min-height:100px;background:#151b15;color:#f1f7ee;border:1px solid #53614a;border-radius:10px;padding:12px;font:inherit}

.project-note{padding:30px;background:linear-gradient(145deg,#172419,#241a38);display:grid;gap:22px}.project-note h2{font-size:clamp(28px,4vw,44px);line-height:1.15}.project-note p{line-height:1.7}.project-note a{color:#c0fb60}
.project-note a.jump-button{display:flex;align-items:center;justify-content:center;color:#19200e;text-decoration:none;text-align:center;min-height:48px}.project-note a.jump-button:visited{color:#19200e}.project-note a.jump-button:focus-visible{outline:3px solid #b49aff;outline-offset:4px}

.schedule-editor .account-form{max-width:100%}
.schedule-editor form.account-form{grid-template-columns:minmax(0,1fr);margin-top:22px}
.schedule-editor .schedule-edit-rows{grid-column:1/-1;width:100%;min-width:0}
.schedule-editor .schedule-edit-row{grid-template-columns:145px minmax(0,1fr) 110px;gap:16px}
.schedule-editor select{font:inherit;font-size:16px;min-height:48px;padding:10px;border:1px solid #4a5448;border-radius:10px;background:#20261e;color:var(--text);max-width:100%}
.schedule-editor .consent-line{justify-content:flex-start}
.schedule-editor .consent-line input{width:22px;min-height:22px;height:22px;flex-shrink:0;order:-1}
.schedule-import{margin-top:26px;border-top:1px solid var(--line);padding-top:22px}
.schedule-import-preview{max-height:420px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;white-space:pre-wrap;font:14px/1.6 inherit;overflow-wrap:anywhere}
@media(max-width:700px){.schedule-editor .schedule-edit-row{grid-template-columns:minmax(0,1fr) 90px;gap:12px}.schedule-editor .schedule-edit-row>strong{grid-column:1/-1}}
/* Phone layout: readable fields, comfortable touch targets, no fixed canvas height. */
@media(max-width:700px){
  :root{scroll-padding-top:20px}
  body{line-height:1.5;-webkit-text-size-adjust:100%}
  .header{padding:16px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left));gap:14px;flex-wrap:wrap}
  .header .brand{font-size:21px}
  .header .brand-icon{width:38px;height:38px;font-size:28px}
  .header nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:5px;padding:6px;border:1px solid var(--line);border-radius:14px;background:#141a15}
  .header nav a{display:flex;align-items:center;justify-content:center;min-height:48px;padding:7px 4px;text-align:center;font-size:13px;line-height:1.3;border-radius:9px}
  .header nav a[aria-current=page]{background:#c0fb601c;color:var(--green);box-shadow:inset 0 0 0 1px #c0fb6040}
  .shell,.footer{width:calc(100% - 24px)}
  .shell{padding-top:22px}
  .panel{border-radius:17px;min-width:0}
  .schedule-panel,.game-card,.leaders-panel,.account-panel{padding:18px}
  h1{font-size:clamp(27px,7.5vw,34px);letter-spacing:-.8px}
  h2{font-size:clamp(24px,6vw,30px);overflow-wrap:anywhere}
  .page-heading{margin-bottom:20px}
  .panel-heading>div,.game-heading>div{min-width:0}
  .class-picker select{font-size:16px;min-height:48px;min-width:96px}
  .date-controls{display:grid;grid-template-columns:1fr;gap:12px;margin-top:20px}
  .date-controls>label,.date-controls input{width:100%;min-width:0}
  .date-controls>div{display:flex;flex-wrap:wrap}
  .date-controls>div>button{flex:1;min-height:46px}
  .day-tabs{gap:4px;margin-top:18px}
  .day-tabs button{min-height:62px;font-size:13px;border-radius:9px}
  .day-tabs small{font-size:11px}
  .lesson{grid-template-columns:26px minmax(0,1fr);gap:4px 10px;padding:15px 0}
  .lesson-number{grid-column:1;grid-row:1/3}
  .lesson-info{grid-column:2}
  .lesson-time{grid-column:2;font-size:13px;color:#b3bfb5}
  .lesson-name{line-height:1.4;font-size:16px}
  .lesson-room{font-size:13px}
  .day-heading{flex-wrap:wrap;gap:4px}
  .day-heading>span{white-space:normal}
  .schedule-footnote,.latest-schedule{line-height:1.65;overflow-wrap:anywhere}
  .project-note{padding:22px;gap:14px}
  .project-note h2{font-size:30px}
  .project-note p{margin:0}
  .games-section{padding-top:6px}
  .game-profiles{flex-wrap:nowrap;overflow-x:auto;gap:10px;padding:4px 2px 12px;scroll-snap-type:x proximity;max-width:100%}
  .game-profile-card{flex:0 0 auto;max-width:85%;overflow-wrap:anywhere;padding:12px 16px;scroll-snap-align:start}
  .player-bar{margin:12px 0;padding:12px 0}
  .player-bar>span{width:auto}
  .jump-card{padding:16px}
  .jump-card canvas{width:100%;height:auto;aspect-ratio:900/320;object-fit:contain}
  .jump-distance strong{font-size:28px}
  .game-heading h3{font-size:23px;line-height:1.25}
  .game-description{font-size:14px}
  .jump-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .jump-actions .jump-button{grid-column:1/-1;order:-1;min-height:60px;font-size:17px}
  .jump-actions .small-button{min-height:46px}
  .memory-tile{height:auto;aspect-ratio:1;min-height:48px;font-size:28px}
  .reaction-pad{min-height:230px;touch-action:manipulation}
  .leader-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:3px}
  .leader-tabs button{min-width:0;padding:8px 3px;min-height:46px}
  .leader-row{grid-template-columns:23px minmax(0,1fr) auto;gap:8px;padding-inline:0}
  .leader-score{font-size:12px}
  .account-panel{margin:0 0 22px}
  .account-form{grid-template-columns:minmax(0,1fr);max-width:100%;gap:16px}
  .account-form>*,.account-form label{min-width:0}
  .account-form input:not([type=checkbox]),.account-form textarea,.account-form select,.moderation-card select{font-size:16px;min-height:48px;width:100%;max-width:100%;border-radius:11px}
  .account-form select{background:#20261e;color:var(--text);border:1px solid #4a5448;padding:10px}
  .account-form input[type=checkbox]{width:22px;height:22px;min-height:22px;align-self:flex-start;flex-shrink:0;accent-color:var(--green)}
  .account-tabs{display:grid;grid-template-columns:1fr 1fr}
  .account-tabs button{font-size:15px;min-height:48px}
  .account-form>.jump-button{width:100%;min-height:52px}
  .data-actions{align-items:stretch;gap:12px}
  .data-actions>a,.data-actions>button{display:flex;align-items:center;min-height:46px}
  .profile-identity{gap:12px;overflow-wrap:anywhere}
  .schedule-edit-rows,.schedule-preview{grid-column:1/-1;min-width:0}
  .schedule-edit-row{grid-template-columns:minmax(0,1fr) 82px;padding:10px;gap:8px}
  .schedule-edit-row>strong{grid-column:1/-1;font-size:14px}
  .moderation-panel{padding:16px;margin:20px 0}
  .moderation-panel>p{font-size:14px;line-height:1.65}
  .support-messages{max-height:55vh;max-height:55dvh;overscroll-behavior-y:contain}
  .support-message{padding:13px;font-size:15px}
  .support-message p{margin:8px 0}
  .support-threads button{min-height:46px;white-space:normal;overflow-wrap:anywhere}
  .privacy-content{margin:24px auto;padding:0 16px 32px;overflow-wrap:anywhere}
  .privacy-content h1{font-size:30px;line-height:1.2;margin-top:18px}
  .privacy-content p,.privacy-content li{line-height:1.7}
  .photo-dialog{width:calc(100% - 24px);max-width:calc(100% - 24px);max-height:85vh;max-height:85dvh;padding:18px;overflow-y:auto;overscroll-behavior:contain}
  .rules-dialog ol{padding-left:22px}
  .footer{gap:12px;margin-top:30px;padding-bottom:calc(24px + env(safe-area-inset-bottom));align-items:flex-start;flex-direction:column}
  .footer>a:not(.brand){display:flex;align-items:center;min-height:44px}
  button,a,input,select,textarea{touch-action:manipulation}
  .jump-actions .jump-button{touch-action:none}
}
@media(max-width:360px){
  .schedule-panel,.game-card,.leaders-panel,.account-panel{padding:14px}
  .header nav a{font-size:12px}
  .day-tabs{gap:2px}
  .game-toolbar{flex-wrap:wrap}
  .game-heading{gap:8px}
}
.profile-avatar{width:120px;height:120px;object-fit:cover;border-radius:24px}.identity-link{display:inline-flex;align-items:center;gap:8px}.identity-avatar{width:32px;height:32px;object-fit:cover;border-radius:50%;order:-1}.profile-bio,.moderation-card p{white-space:pre-wrap;overflow-wrap:anywhere}.account-form textarea{width:100%;box-sizing:border-box;min-height:100px;background:#20271d;color:#fff;border:1px solid #495341;border-radius:12px;padding:12px;font:inherit}.account-form input[type=checkbox]{width:22px;height:22px;min-height:22px}.moderation-card .small-button{margin:6px}
.monthly-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:20px}.monthly-card{min-width:0;border:1px solid #495341;border-radius:18px;padding:16px}.monthly-card .leader-row{grid-template-columns:28px minmax(0,1fr) auto;gap:8px}.monthly-card .identity-link{overflow-wrap:anywhere;min-width:0}.leaders-panel select{padding:10px;background:#20271d;color:#fff;border-radius:10px;max-width:100%}@media(max-width:850px){.monthly-grid{grid-template-columns:1fr}}
